User Profile Picture - Version 2.3.6

Version Description

  • Released 2019-10-09
  • Updating compatibility with WordPress 5.3
  • Fixing JavaScript error in WordPress 5.3
Download this release

Release Info

Developer ronalfy
Plugin Icon 128x128 User Profile Picture
Version 2.3.6
Comparing to
See all releases

Code changes from version 2.3.5 to 2.3.6

dist/blocks.build.js CHANGED
@@ -1 +1 @@
1
- !function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=9)}([function(e,t,r){"use strict";function o(e){return"[object Array]"===T.call(e)}function n(e){return"[object ArrayBuffer]"===T.call(e)}function i(e){return"undefined"!==typeof FormData&&e instanceof FormData}function a(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function l(e){return"string"===typeof e}function s(e){return"number"===typeof e}function p(e){return"undefined"===typeof e}function c(e){return null!==e&&"object"===typeof e}function u(e){return"[object Date]"===T.call(e)}function m(e){return"[object File]"===T.call(e)}function f(e){return"[object Blob]"===T.call(e)}function h(e){return"[object Function]"===T.call(e)}function d(e){return c(e)&&h(e.pipe)}function g(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function b(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function C(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}function v(){function e(e,r){"object"===typeof t[r]&&"object"===typeof e?t[r]=v(t[r],e):t[r]=e}for(var t={},r=0,o=arguments.length;r<o;r++)C(arguments[r],e);return t}function E(e,t,r){return C(t,function(t,o){e[o]=r&&"function"===typeof t?_(t,r):t}),e}var _=r(4),y=r(15),T=Object.prototype.toString;e.exports={isArray:o,isArrayBuffer:n,isBuffer:y,isFormData:i,isArrayBufferView:a,isString:l,isNumber:s,isObject:c,isUndefined:p,isDate:u,isFile:m,isBlob:f,isFunction:h,isStream:d,isURLSearchParams:g,isStandardBrowserEnv:w,forEach:C,merge:v,extend:E,trim:b}},function(e,t,r){"use strict";(function(t){function o(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var n=r(0),i=r(18),a={"Content-Type":"application/x-www-form-urlencoded"},l={adapter:function(){var e;return"undefined"!==typeof XMLHttpRequest?e=r(5):"undefined"!==typeof t&&(e=r(5)),e}(),transformRequest:[function(e,t){return i(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(o(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(o(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],function(e){l.headers[e]={}}),n.forEach(["post","put","patch"],function(e){l.headers[e]=n.merge(a)}),e.exports=l}).call(t,r(17))},function(e,t,r){var o,n;!function(){"use strict";function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var n=typeof o;if("string"===n||"number"===n)e.push(o);else if(Array.isArray(o)&&o.length){var a=r.apply(null,o);a&&e.push(a)}else if("object"===n)for(var l in o)i.call(o,l)&&o[l]&&e.push(l)}}return e.join(" ")}var i={}.hasOwnProperty;"undefined"!==typeof e&&e.exports?(r.default=r,e.exports=r):(o=[],void 0!==(n=function(){return r}.apply(t,o))&&(e.exports=n))}()},function(e,t,r){e.exports=r(14)},function(e,t,r){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),o=0;o<r.length;o++)r[o]=arguments[o];return e.apply(t,r)}}},function(e,t,r){"use strict";var o=r(0),n=r(19),i=r(21),a=r(22),l=r(23),s=r(6);e.exports=function(e){return new Promise(function(t,p){var c=e.data,u=e.headers;o.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(e.auth){var f=e.auth.username||"",h=e.auth.password||"";u.Authorization="Basic "+btoa(f+":"+h)}if(m.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),m.timeout=e.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in m?a(m.getAllResponseHeaders()):null,o=e.responseType&&"text"!==e.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:r,config:e,request:m};n(t,p,i),m=null}},m.onerror=function(){p(s("Network Error",e,null,m)),m=null},m.ontimeout=function(){p(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",m)),m=null},o.isStandardBrowserEnv()){var d=r(24),g=(e.withCredentials||l(e.url))&&e.xsrfCookieName?d.read(e.xsrfCookieName):void 0;g&&(u[e.xsrfHeaderName]=g)}if("setRequestHeader"in m&&o.forEach(u,function(e,t){"undefined"===typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),e.withCredentials&&(m.withCredentials=!0),e.responseType)try{m.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"===typeof e.onDownloadProgress&&m.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){m&&(m.abort(),p(e),m=null)}),void 0===c&&(c=null),m.send(c)})}},function(e,t,r){"use strict";var o=r(20);e.exports=function(e,t,r,n,i){var a=new Error(e);return o(a,t,r,n,i)}},function(e,t,r){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,r){"use strict";function o(e){this.message=e}o.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},o.prototype.__CANCEL__=!0,e.exports=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(10)},function(e,t,r){"use strict";var o=r(11),n=(r.n(o),r(12)),i=(r.n(n),r(13)),a=r(32),l=r(2),s=r.n(l),__=wp.i18n.__,p=wp.blocks.registerBlockType,c=wp.element,u=(c.Component,c.Fragment),m=wp.editor.RichText,f={profileName:{type:"string",default:""},profileTitle:{type:"string",default:""},profileContent:{type:"string",default:""},profileAlignment:{type:"string"},profileImgURL:{type:"string",source:"attribute",attribute:"src",selector:"img",default:""},profileImgID:{type:"number",default:""},profileURL:{type:"string",default:""},profileBackgroundColor:{type:"string",default:"#f2f2f2"},profileTextColor:{type:"string",default:"#32373c"},profileViewPostsBackgroundColor:{type:"string",default:"#cf6d38"},profileViewPostsTextColor:{type:"string",default:"#FFFFFF"},profileViewPostsWidth:{type:"number",default:100},profileFontSize:{type:"number",default:18},profileAvatarShape:{type:"string",default:"square"},showName:{type:"bool",default:!0},showTitle:{type:"bool",default:!0},showDescription:{type:"bool",default:!0},showViewPosts:{type:"bool",default:!0},user_id:{type:"number",default:0}};p("mpp/user-profile",{title:__("User Profile Legacy","metronet-profile-picture"),icon:wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),category:"mpp",attributes:f,edit:a.a,save:function(e){var t=e.attributes,r=t.profileName,o=t.profileTitle,n=t.profileContent,i=t.profileAlignment,a=t.profileImgURL,l=(t.profileImgID,t.profileFontSize),p=t.profileBackgroundColor,c=t.profileTextColor,f=(t.profileLinkColor,t.profileAvatarShape),h=t.profileViewPostsBackgroundColor,d=t.profileViewPostsTextColor,g=t.profileURL,b=t.showTitle,w=t.showName,C=t.showDescription,v=t.showViewPosts;return wp.element.createElement(u,null,wp.element.createElement("div",{className:s()("mpp-profile-wrap",i,f,"mt-font-size-"+l,"mpp-block-profile"),style:{backgroundColor:p,color:c}},wp.element.createElement("div",{className:s()("mpp-profile-gutenberg-wrap","mpp-block-profile"),style:{backgroundColor:p,color:c}},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement("img",{className:"mpp-profile-avatar",src:a,alt:"avatar"}))),wp.element.createElement("div",{className:"mpp-content-wrap"},r&&!!r.length&&w&&wp.element.createElement(m.Content,{tagName:"h2",className:"mpp-profile-name",style:{color:c},value:r}),o&&!!o.length&&b&&wp.element.createElement(m.Content,{tagName:"p",className:"mpp-profile-title",style:{color:c},value:o}),n&&!!n.length&&C&&wp.element.createElement(m.Content,{tagName:"div",className:"mpp-profile-text",value:n}))),g&&!!g.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts"},v&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:h,color:d}},wp.element.createElement("a",{href:g,style:{backgroundColor:h,color:d}},__("View Posts","metronet-profile-picture"))))))}}),p("mpp/user-profile-enhanced",{title:__("User Profile","metronet-profile-picture"),icon:wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),category:"mpp",getEditWrapperProps:function(e){},edit:i.a,save:function(){return null}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=r(3),s=r.n(l),p=r(2),c=r.n(p),u=function(){function e(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,r,o){return r&&e(t.prototype,r),o&&e(t,o),t}}(),m=wp.element,f=m.Component,h=m.Fragment,__=wp.i18n.__,d=wp.components,g=d.PanelBody,b=d.Placeholder,w=(d.QueryControls,d.RangeControl),C=d.SelectControl,v=d.Spinner,E=d.TextControl,_=d.ToggleControl,y=(d.Toolbar,d.withAPIData,d.ColorPalette,d.Button),T=wp.editor,P=T.InspectorControls,S=(T.BlockControls,T.MediaUpload),N=T.RichText,x=(T.AlignmentToolbar,T.PanelColorSettings),k=function(e){function t(){n(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));e.get_users=function(){s.a.post(mpp_gutenberg.rest_url+"/get_users",{},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r,n=Array(),i=Array(),a=0,l="",s=0,p="",c="",u="",m="",f="";$.each(t.data,function(e,t){n[t.ID]={profile_pictures:t.profile_pictures,has_profile_picture:t.has_profile_picture,display_name:t.display_name,description:t.description,is_user_logged_in:t.is_user_logged_in,profile_picture_id:t.profile_picture_id,default_image:t.default_image,permalink:t.permalink},t.is_user_logged_in&&(a=t.ID),i.push({value:t.ID,label:t.display_name})}),0!==e.props.attributes.user_id&&(a=e.props.attributes.user_id);var h=n[a];h.has_profile_picture?(l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:h.profile_pictures.thumbnail,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:h.profile_picture_id,p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:h.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",m=h.permalink,c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:h.description,f=e.props.attributes.showWebsite):(p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:h.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:h.description,l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:h.default_image,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:0,m=h.permalink,f=e.props.attributes.showWebsite),void 0==c&&(c=""),e.setState((r={loading:!1,users:n,active_user:a,user_list:i,profile_picture:l,profile_picture_id:s},o(r,"active_user",a),o(r,"profile_name",p),o(r,"profile_name_unfiltered",h.display_name),o(r,"profile_title",u),o(r,"profile_description",c),o(r,"profile_url",m),o(r,"show_website",f),r)),e.props.setAttributes(o({profileContent:c,profileName:p,profileTitle:u,profileURL:m,profileImgID:s,profileImgURL:l,showWebsite:f,showSocialMedia:!0},"profileName",h.display_name))})},e.on_user_change=function(t){var r=e.state.users[t],n="",i=0,a="";r.has_profile_picture?(n=e.state.users[t].profile_pictures.thumbnail,i=e.state.users[t].profile_picture_id):(n=mpp_gutenberg.mystery_man,i=0);var l=e.state.users[t].description;void 0===l&&(l=""),a=e.state.users[t].display_name,e.props.setAttributes(o({profileName:a,profileContent:l,profileTitle:"",profileURL:e.state.users[t].permalink,profileImgURL:n,tabbedAuthorSubHeading:"",tabbedAuthorProfileTitle:"",socialFacebook:"",socialGitHub:"",socialInstagram:"",socialLinkedIn:"",socialPinterest:"",socialTwitter:"",socialWordPress:"",socialYouTube:""},"profileName",e.state.users[t].display_name)),e.setState({profile_name_unfiltered:e.state.users[t].display_name,profile_name:a,profile_description:l,profile_title:"",profile_picture:n,profile_picture_id:i,active_user:t,profile_url:e.state.users[t].permalink,socialFacebook:"",socialGitHub:"",socialInstagram:"",socialLinkedIn:"",socialPinterest:"",socialTwitter:"",socialWordPress:"",socialYouTube:""}),e.getLatestPosts()},e.getLatestPosts=function(){e.setState({loadingLatestPosts:!0});s.a.post(mpp_gutenberg.rest_url+"/get_posts",{user_id:e.state.active_user},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r=t.data,o=r.map(function(e){return wp.element.createElement("li",{key:e.ID},wp.element.createElement("a",{href:e.permalink},e.post_title))});e.setState({loadingLatestPosts:!1,latestPosts:o})})},e.componentDidMount=function(){e.get_users()},e.handleImageChange=function(t,r){e.setState({profile_picture:r,profile_picture_id:t})},e.onChangeName=function(t){e.setState({profile_name:t})},e.onChangeTitle=function(t){e.setState({profile_title:t})},e.onChangeProfileText=function(t){e.setState({profile_description:t})},e.onThemeChange=function(t){e.setState({theme:t})},e.handleFacebookChange=function(t){e.setState({socialFacebook:t})},e.handleYouTubeChange=function(t){e.setState({socialYouTube:t})},e.handleGitHubChange=function(t){e.setState({socialGitHub:t})},e.handleLinkedInChange=function(t){e.setState({socialLinkedIn:t})},e.handleTwitterChange=function(t){e.setState({socialTwitter:t})},e.handleWordPressChange=function(t){e.setState({socialWordPress:t})},e.handleWebsiteChange=function(t){e.setState({website:t}),""!==t&&e.props.setAttributes({showWebsite:!0})},e.handleInstagramChange=function(t){e.setState({socialInstagram:t})},e.handlePinterestChange=function(t){e.setState({socialPinterest:t})},e.handleSocialMediaChange=function(t){e.setState({showSocialMedia:t}),e.props.setAttributes({showSocialMedia:t})},e.handleSocialMediaOptionChange=function(t){e.setState({socialMediaOptions:t})},e.onChangeTabbedProfileText=function(t){e.setState({tabbedAuthorProfile:t})},e.onChangeTabbedSubHeading=function(t){e.setState({tabbedAuthorSubHeading:t})},e.onChangeActiveProfileTab=function(){e.setState({activeTab:"profile"})},e.onChangeActivePostTab=function(){e.setState({activeTab:"latest",loadingLatestPosts:!0}),e.getLatestPosts()},e.onChangetabbedAuthorProfile=function(t){e.setState({tabbedAuthorProfile:t})},e.onChangetabbedAuthorProfileHeading=function(t){e.setState({tabbedAuthorProfileHeading:t})},e.onChangetabbedAuthorLatestPosts=function(t){e.setState({tabbedAuthorLatestPosts:t})},e.onChangeProfileTabColor=function(t){e.setState({profileTabColor:t}),e.props.setAttributes({profileTabColor:t})},e.onChangePostsTabColor=function(t){e.setState({profileTabPostsColor:t}),e.props.setAttributes({profileTabPostsColor:t})},e.onChangePostsTabHeadlineColor=function(t){e.setState({profileTabHeadlineColor:t}),e.props.setAttributes({profileTabHeadlineColor:t})},e.onChangeProfileTabPostColorText=function(t){e.setState({profileTabPostsTextColor:t}),e.props.setAttributes({profileTabPostsTextColor:t})},e.onChangeProfileTabHeadlineColorText=function(t){e.setState({profileTabHeadlineTextColor:t}),e.props.setAttributes({profileTabHeadlineTextColor:t})},e.onChangeProfileTabColorText=function(t){e.setState({profileTabTextColor:t}),e.props.setAttributes({profileTabTextColor:t})},e.onLatestPostsChange=function(t){e.setState({profileLatestPostsOptionsValue:t})},e.onCompactAlignmentChange=function(t){e.setState({profileCompactAlignment:t})};var r=Array();return r.push({value:"regular",label:__("Regular","metronet-profile-picture")}),r.push({value:"profile",label:__("Profile","metronet-profile-picture")}),r.push({value:"tabbed",label:__("Tabbed","metronet-profile-picture")}),r.push({value:"compact",label:__("Compact","metronet-profile-picture")}),e.state={loading:!0,users:!1,user_list:!1,profile_picture:e.props.attributes.profileImgURL,profile_picture_id:e.props.attributes.profileImgID,active_user:!1,profile_description:"",profile_name:"",profile_name_unfiltered:"",profile_title:"",show_website:e.props.attributes.showWebsite,profileViewPosts:e.props.attributes.profileViewPosts,profileViewWebsite:e.props.attributes.profileViewWebsite,theme:e.props.attributes.theme,themes:r,socialFacebook:e.props.attributes.socialFacebook,socialGitHub:e.props.attributes.socialGitHub,socialLinkedIn:e.props.attributes.socialLinkedIn,socialPinterest:e.props.attributes.socialPinterest,socialTwitter:e.props.attributes.socialTwitter,socialWordPress:e.props.attributes.socialWordPress,socialYouTube:e.props.attributes.socialYouTube,socialInstagram:e.props.attributes.socialInstagram,website:e.props.attributes.website,showSocialMedia:!0,socialMediaOptions:e.props.attributes.socialMediaOptions,socialMediaColors:e.props.attributes.socialMediaColors,tabbedAuthorProfile:e.props.attributes.tabbedAuthorProfile,tabbedAuthorLatestPosts:e.props.attributes.tabbedAuthorLatestPosts,tabbedAuthorSubHeading:e.props.attributes.tabbedAuthorSubHeading,tabbedAuthorProfileHeading:e.props.attributes.tabbedAuthorProfileHeading,activeTab:"profile",loadingLatestPosts:!0,latestPosts:{},profileTabColor:e.props.attributes.profileTabColor,profileTabHeadlineColor:e.props.attributes.profileTabHeadlineColor,profileTabPostsColor:e.props.attributes.profileTabPostsColor,profileTabHeadlineTextColor:e.props.attributes.profileTabHeadlineTextColor,profileTabTextColor:e.props.attributes.profileTabTextColor,profileTabPostsTextColor:e.props.attributes.profileTabPostsTextColor,profileLatestPostsOptionsValue:e.props.attributes.profileLatestPostsOptionsValue,profileCompactAlignment:e.props.attributes.profileCompactAlignment},e}return a(t,e),u(t,[{key:"render",value:function(){var e=this,t=this.props,r=t.attributes,o=r.profileName,n=r.profileTitle,i=r.profileContent,a=r.profileAlignment,l=r.profileImgURL,s=r.profileImgID,p=r.profileURL,u=r.profileFontSize,m=r.buttonFontSize,f=r.headerFontSize,d=r.profileBackgroundColor,T=r.profileTextColor,k=r.profileAvatarShape,A=r.profileViewPostsBackgroundColor,I=r.profileViewPostsTextColor,L=r.profileViewPosts,O=r.profileViewWebsite,V=r.showTitle,H=r.showName,R=r.showDescription,M=r.showViewPosts,B=r.showPostsWidth,U=(r.showSocialMedia,r.showWebsite),D=(r.theme,r.theme_list,r.socialFacebook,r.socialGitHub,r.socialLinkedIn,r.socialPinterest,r.socialTwitter,r.socialWordPress,r.socialYouTube,r.socialMediaColors),F=r.profileWebsiteBackgroundColor,W=r.profileWebsiteTextColor,j=r.padding,z=r.border,q=r.borderRounded,Z=r.borderColor,G=r.profileLinkColor,Y=(r.tabbedAuthorProfile,r.tabbedAuthorSubHeading,r.tabbedAuthorProfileTitle),X=(r.profileLatestPostsOptionsValue,t.attributes,t.isSelected,t.editable,t.className,t.setAttributes);this.state.profile_pictures;s=this.state.profile_picture_id,l=this.state.profile_picture,o=this.state.profile_name,i=this.state.profile_description,n=this.state.profile_title,p=this.state.profile_url,B=""!==this.state.website&&this.props.attributes.showWebsite?"":"100%",X({showPostsWidth:B});var $=function(e){return X({profileBackgroundColor:e})},J=function(e){return X({profileTextColor:e})},K=function(e){return X({profileViewPostsBackgroundColor:e})},Q=function(e){return X({profileViewPostsTextColor:e})},ee=function(e){return X({profileWebsiteBackgroundColor:e})},te=function(e){return X({profileWebsiteTextColor:e})},re=function(e){return X({socialMediaColors:e})},oe=function(e){return X({borderColor:e})},ne=function(e){return X({profileLinkColor:e})},ie=[{value:"square",label:__("Square","metronet-profile-picture")},{value:"round",label:__("Round","metronet-profile-picture")}],ae=[{value:"colors",label:__("Brand Colors","metronet-profile-picture")},{value:"custom",label:__("Custom","metronet-profile-picture")}],le=[{value:"none",label:__("None","metronet-profile-picture")},{value:"white",label:__("White","metronet-profile-picture")},{value:"light",label:__("Light","metronet-profile-picture")},{value:"black",label:__("Black","metronet-profile-picture")},{value:"magenta",label:__("Magenta","metronet-profile-picture")},{value:"blue",label:__("Blue","metronet-profile-picture")},{value:"green",label:__("Green","metronet-profile-picture")}],se=[{value:"left",label:__("Left","metronet-profile-picture")},{value:"center",label:__("Center","metronet-profile-picture")},{value:"right",label:__("Right","metronet-profile-picture")}],pe="none",ce="";return"center"===this.state.profileCompactAlignment&&(pe="none",ce="0 auto"),"left"===this.state.profileCompactAlignment&&(pe="left",ce="0"),"right"===this.state.profileCompactAlignment&&(pe="right",ce="0"),wp.element.createElement(h,null,this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(b,null,wp.element.createElement("div",null,wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:"125px",height:"125px",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),wp.element.createElement("div",{className:"mpp-spinner"},wp.element.createElement(v,null))))),!this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(P,null,wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a user","metronet-profile-picture"),value:this.state.active_user,options:this.state.user_list,onChange:function(t){e.on_user_change(t),X({user_id:Number(t)})}}),wp.element.createElement(C,{label:__("Select a theme","metronet-profile-picture"),value:this.state.theme,options:this.state.themes,onChange:function(t){e.onThemeChange(t),X({theme:t})}}),"compact"===this.state.theme&&wp.element.createElement(C,{label:__("Select an alignment","metronet-profile-picture"),value:this.state.profileCompactAlignment,options:se,onChange:function(t){e.onCompactAlignmentChange(t),X({profileCompactAlignment:t})}}),wp.element.createElement(C,{label:__("Avatar Shape","metronet-profile-picture"),description:__("Choose between a round or square avatar shape.","metronet-profile-picture"),options:ie,value:k,onChange:function(t){return e.props.setAttributes({profileAvatarShape:t})}}),"tabbed"!==this.state.theme&&wp.element.createElement(E,{label:__("Website","metronet-profile-picture"),value:this.state.website,onChange:function(t){e.props.setAttributes({website:t}),e.handleWebsiteChange(t)}}),wp.element.createElement(_,{label:__("Show Name","metronet-profile-picture"),checked:H,onChange:function(){return e.props.setAttributes({showName:!H})}}),wp.element.createElement(_,{label:__("Show Title","metronet-profile-picture"),checked:V,onChange:function(){return e.props.setAttributes({showTitle:!V})}}),wp.element.createElement(_,{label:__("Show Description","metronet-profile-picture"),checked:R,onChange:function(){return e.props.setAttributes({showDescription:!R})}}),"tabbed"!==this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(_,{label:__("Show View Posts","metronet-profile-picture"),checked:M,onChange:function(){return e.props.setAttributes({showViewPosts:!M})}}),M&&wp.element.createElement(E,{label:__("View Posts Text","metronet-profile-picture"),value:L,onChange:function(t){e.props.setAttributes({profileViewPosts:t})}}),wp.element.createElement(_,{label:__("Show Website","metronet-profile-picture"),checked:this.state.show_website,onChange:function(t){e.props.setAttributes({showWebsite:t}),e.setState({show_website:t})}}),this.state.show_website&&wp.element.createElement(E,{label:__("View Website Text","metronet-profile-picture"),value:O,onChange:function(t){e.props.setAttributes({profileViewWebsite:t})}})),wp.element.createElement(_,{label:__("Show Social Media","metronet-profile-picture"),checked:this.state.showSocialMedia,onChange:function(t){e.props.setAttributes({showSocialMedia:t}),e.handleSocialMediaChange(t)}})),"tabbed"===this.state.theme&&wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a theme","metronet-profile-picture"),value:this.state.latestPostsTheme,options:{},onChange:function(t){e.on_user_change(t),X({user_id:Number(t)})}})),wp.element.createElement(g,{title:__("Colors","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(x,{title:__("Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:d,onChange:$,label:__("Background Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:T,onChange:J,label:__("Text Color","metronet-profile-picture")}]}),"profile"===this.state.theme&&wp.element.createElement(x,{title:__("Link Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:G,onChange:ne,label:__("Link Color","metronet-profile-picture")}]}),"tabbed"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(x,{title:__("Profile Tab Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabColor,onChange:this.onChangeProfileTabColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Tab Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabTextColor,onChange:this.onChangeProfileTabColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Posts Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabPostsColor,onChange:this.onChangePostsTabColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Post Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabPostsTextColor,onChange:this.onChangeProfileTabPostColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Headline Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabHeadlineColor,onChange:this.onChangePostsTabHeadlineColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Headline Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabHeadlineColorText,onChange:this.onChangeProfileTabHeadlineColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(C,{label:__("Select a Post Theme","metronet-profile-picture"),value:this.state.profileLatestPostsOptionsValue,options:le,onChange:function(t){e.onLatestPostsChange(t),X({profileLatestPostsOptionsValue:t})}})),"tabbed"!==this.state.theme&&"profile"!==this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(x,{title:__("View Posts Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:A,onChange:K,label:__("View Posts Background","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("View Posts Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:I,onChange:Q,label:__("View Posts Text Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Website Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:F,onChange:ee,label:__("View Website Background","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("View Website Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:W,onChange:te,label:__("View Website Text Color","metronet-profile-picture")}]}))),wp.element.createElement(g,{title:__("Spacing and Font Settings","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(w,{label:__("Header Font Size","metronet-profile-picture"),value:f,onChange:function(t){return e.props.setAttributes({headerFontSize:t})},min:14,max:32,step:1}),wp.element.createElement(w,{label:__("Font Size","metronet-profile-picture"),value:u,onChange:function(t){return e.props.setAttributes({profileFontSize:t})},min:14,max:24,step:1}),"tabbed"!==this.state.theme&&wp.element.createElement(w,{label:__("Button Size","metronet-profile-picture"),value:m,onChange:function(t){return e.props.setAttributes({buttonFontSize:t})},min:10,max:24,step:1}),wp.element.createElement(w,{label:__("Padding","metronet-profile-picture"),value:j,onChange:function(t){return e.props.setAttributes({padding:t})},min:0,max:60,step:1}),wp.element.createElement(w,{label:__("Border","metronet-profile-picture"),value:z,onChange:function(t){return e.props.setAttributes({border:t})},min:0,max:10,step:1}),wp.element.createElement(w,{label:__("Border Rounded","metronet-profile-picture"),value:q,onChange:function(t){return e.props.setAttributes({borderRounded:t})},min:0,max:10,step:1}),wp.element.createElement(x,{title:__("Border Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:Z,onChange:oe,label:__("Border Color","metronet-profile-picture")}]})),wp.element.createElement(g,{title:__("Social Media Settings","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(C,{label:__("Social Media Colors","metronet-profile-picture"),value:this.state.socialMediaOptions,options:ae,onChange:function(t){X({socialMediaOptions:t}),e.handleSocialMediaOptionChange(t)}}),"custom"===this.state.socialMediaOptions&&wp.element.createElement(x,{title:__("Social Media Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:D,onChange:re,label:__("Social Media Color","metronet-profile-picture")}]}),wp.element.createElement(E,{label:__("Facebook","metronet-profile-picture"),value:this.state.socialFacebook,onChange:function(t){e.props.setAttributes({socialFacebook:t}),e.handleFacebookChange(t)}}),wp.element.createElement(E,{label:__("Twitter","metronet-profile-picture"),value:this.state.socialTwitter,onChange:function(t){e.props.setAttributes({socialTwitter:t}),e.handleTwitterChange(t)}}),wp.element.createElement(E,{label:__("Instagram","metronet-profile-picture"),value:this.state.socialInstagram,onChange:function(t){e.props.setAttributes({socialInstagram:t}),e.handleInstagramChange(t)}}),wp.element.createElement(E,{label:__("LinkedIn","metronet-profile-picture"),value:this.state.socialLinkedIn,onChange:function(t){e.props.setAttributes({socialLinkedIn:t}),e.handleLinkedInChange(t)}}),wp.element.createElement(E,{label:__("YouTube","metronet-profile-picture"),value:this.state.socialYouTube,onChange:function(t){e.props.setAttributes({socialYouTube:t}),e.handleYouTubeChange(t)}}),wp.element.createElement(E,{label:__("GitHub","metronet-profile-picture"),value:this.state.socialGitHub,onChange:function(t){e.props.setAttributes({socialGitHub:t}),e.handleGitHubChange(t)}}),wp.element.createElement(E,{label:__("Pinterest","metronet-profile-picture"),value:this.state.socialPinterest,onChange:function(t){e.props.setAttributes({socialPinterest:t}),e.handlePinterestChange(t)}}),wp.element.createElement(E,{label:__("WordPress","metronet-profile-picture"),value:this.state.socialWordPress,onChange:function(t){e.props.setAttributes({socialWordPress:t}),e.handleWordPressChange(t)}}))),"tabbed"!==this.state.theme&&wp.element.createElement("div",{className:c()("mpp-enhanced-profile-wrap",this.state.theme,a,k,"mpp-block-profile"),style:{padding:j+"px",border:z+"px solid "+Z,borderRadius:q+"px",backgroundColor:d,color:T,float:pe,margin:ce}},"regular"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),wp.element.createElement("div",{className:"mpp-content-wrap"},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),V&&wp.element.createElement(N,{tagName:"p",placeholder:__("Add title","atomic-blocks"),value:n,className:"mpp-profile-title",style:{color:T},onChange:function(t){e.onChangeTitle(t),X({profileTitle:t})}}),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}))),p&&!!p.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts",style:{width:B}},M&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:A,color:I,width:B,fontSize:m+"px"}},wp.element.createElement("a",{href:p,style:{backgroundColor:A,color:I}},L)),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-view-website",style:{backgroundColor:F,color:W,fontSize:m+"px"}},wp.element.createElement("a",{href:this.state.website,style:{backgroundColor:F,color:W}},O)))),"profile"===this.state.theme&&wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}),wp.element.createElement("div",{className:"mpp-profile-meta",style:{fontSize:m+"px"}},M&&wp.element.createElement("div",{className:"mpp-profile-link alignleft"},wp.element.createElement("a",{href:this.state.profile_url,style:{color:G}},__("View all posts by","metronet-profile-picture")," ",this.state.profile_name_unfiltered)),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-link alignright"},wp.element.createElement("a",{href:this.state.website,style:{color:G}},__("Website","metronet-profile-picture"))))),"compact"===this.state.theme&&wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}),wp.element.createElement("div",{className:"mpp-compact-meta"},M&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:A,color:I,width:"90%",margin:"0 auto 10px auto",fontSize:m+"px"}},wp.element.createElement("a",{href:p,style:{backgroundColor:A,color:I}},__("View Posts","metronet-profile-picture"))),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-view-website",style:{backgroundColor:F,color:W,fontSize:m+"px",width:"90%",margin:"0 auto"}},wp.element.createElement("a",{href:this.state.website,style:{backgroundColor:F,color:W}},__("View Website","metronet-profile-picture"))))),1==this.state.showSocialMedia&&("regular"===this.state.theme||"compact"===this.state.theme||"profile"===this.state.theme)&&wp.element.createElement("div",{className:"mpp-social"},""!=this.state.socialFacebook&&wp.element.createElement("a",{href:this.state.socialFacebook},wp.element.createElement("svg",{className:"icon icon-facebook",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#facebook"}))),""!=this.state.socialTwitter&&wp.element.createElement("a",{href:this.state.socialTwitter},wp.element.createElement("svg",{className:"icon icon-twitter",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#twitter"}))),""!=this.state.socialInstagram&&wp.element.createElement("a",{href:this.state.socialInstagram},wp.element.createElement("svg",{className:"icon icon-instagram",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#instagram"}))),""!=this.state.socialPinterest&&wp.element.createElement("a",{href:this.state.socialPinterest},wp.element.createElement("svg",{className:"icon icon-pinterest",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#pinterest"}))),""!=this.state.socialLinkedIn&&wp.element.createElement("a",{href:this.state.socialLinkedIn},wp.element.createElement("svg",{className:"icon icon-linkedin",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#linkedin"}))),""!=this.state.socialYouTube&&wp.element.createElement("a",{href:this.state.socialYouTube},wp.element.createElement("svg",{className:"icon icon-youtube",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#youtube"}))),""!=this.state.socialGitHub&&wp.element.createElement("a",{href:this.state.socialGitHub},wp.element.createElement("svg",{className:"icon icon-github",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#github"}))),""!=this.state.socialWordPress&&wp.element.createElement("a",{href:this.state.socialWordPress},wp.element.createElement("svg",{className:"icon icon-wordpress",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#wordpress"}))))),"tabbed"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement("div",{className:c()("mpp-author-tabbed",this.state.theme,a,k,"mpp-block-profile")},wp.element.createElement("ul",{className:"mpp-author-tabs"},wp.element.createElement("li",{className:c()("mpp-tab-profile","profile"===this.state.activeTab?"active":""),onClick:this.onChangeActiveProfileTab,style:{backgroundColor:this.state.profileTabColor,color:this.state.profileTabTextColor}},wp.element.createElement(N,{tagName:"span",placeholder:__("Add tab name.","metronet-profile-picture"),value:this.state.tabbedAuthorProfile,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorProfile(t),X({tabbedAuthorProfile:t})}})),wp.element.createElement("li",{className:c()("mpp-tab-posts","latest"===this.state.activeTab?"active":""),onClick:this.onChangeActivePostTab,style:{backgroundColor:this.state.profileTabPostsColor,color:this.state.profileTabPostsTextColor}},wp.element.createElement(N,{tagName:"span",placeholder:__("Add tab name.","metronet-profile-picture"),value:this.state.tabbedAuthorLatestPosts,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorLatestPosts(t),X({tabbedAuthorLatestPosts:t})}}))),wp.element.createElement("div",{className:"mpp-tab-wrapper",style:{padding:j+"px",border:z+"px solid "+Z,borderRadius:q+"px",backgroundColor:d,color:T}},"profile"===this.state.activeTab&&wp.element.createElement(h,null,wp.element.createElement("div",{className:"mpp-author-social-wrapper"},wp.element.createElement("div",{className:"mpp-author-heading"},wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-heading",value:this.state.tabbedAuthorProfileHeading,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorProfileHeading(t),X({profileTabHeadlineTextColor:t})},style:{backgroundColor:this.state.profileTabHeadlineColor,color:this.state.profileTabHeadlineTextColor}})),this.state.showSocialMedia&&wp.element.createElement("div",{className:"mpp-author-social"},wp.element.createElement("div",{className:"mpp-social"},""!=this.state.socialFacebook&&wp.element.createElement("a",{href:this.state.socialFacebook},wp.element.createElement("svg",{className:"icon icon-facebook",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#facebook"}))),""!=this.state.socialTwitter&&wp.element.createElement("a",{href:this.state.socialTwitter},wp.element.createElement("svg",{className:"icon icon-twitter",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#twitter"}))),""!=this.state.socialInstagram&&wp.element.createElement("a",{href:this.state.socialInstagram},wp.element.createElement("svg",{className:"icon icon-instagram",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#instagram"}))),""!=this.state.socialPinterest&&wp.element.createElement("a",{href:this.state.socialPinterest},wp.element.createElement("svg",{className:"icon icon-pinterest",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#pinterest"}))),""!=this.state.socialLinkedIn&&wp.element.createElement("a",{href:this.state.socialLinkedIn},wp.element.createElement("svg",{className:"icon icon-linkedin",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#linkedin"}))),""!=this.state.socialYouTube&&wp.element.createElement("a",{href:this.state.socialYouTube},wp.element.createElement("svg",{className:"icon icon-youtube",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#youtube"}))),""!=this.state.socialGitHub&&wp.element.createElement("a",{href:this.state.socialGitHub},wp.element.createElement("svg",{className:"icon icon-github",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#github"}))),""!=this.state.socialWordPress&&wp.element.createElement("a",{href:this.state.socialWordPress},wp.element.createElement("svg",{className:"icon icon-wordpress",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#wordpress"})))))),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}),wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-sub-heading",placeholder:__("Add profile description...","metronet-profile-picture"),value:this.state.tabbedAuthorSubHeading,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeTabbedSubHeading(t),X({tabbedAuthorSubHeading:t})}}))),wp.element.createElement("div",{className:"mpp-tabbed-profile-information"},V&&wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-title",placeholder:__("Add profile title...","metronet-profile-picture"),value:Y,formattingControls:["bold","italic","strikethrough","link"],onChange:function(e){X({tabbedAuthorProfileTitle:e})}}),H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),R&&wp.element.createElement(N,{tagName:"div",className:c()("mpp-profile-text","mt-font-size-"+u),placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}))),"latest"===this.state.activeTab&&wp.element.createElement(h,null,this.state.loadingLatestPosts&&wp.element.createElement(h,null,wp.element.createElement("div",null,wp.element.createElement("div",{className:"mpp-spinner"},wp.element.createElement(v,null)))),!this.state.loadingLatestPosts&&wp.element.createElement(h,null,wp.element.createElement("ul",{className:c()("mpp-author-tab-content",this.state.profileLatestPostsOptionsValue)},this.state.latestPosts))))))))}}]),t}(f);t.a=k},function(e,t,r){"use strict";function o(e){var t=new a(e),r=i(a.prototype.request,t);return n.extend(r,a.prototype,t),n.extend(r,t),r}var n=r(0),i=r(4),a=r(16),l=r(1),s=o(l);s.Axios=a,s.create=function(e){return o(n.merge(l,e))},s.Cancel=r(8),s.CancelToken=r(30),s.isCancel=r(7),s.all=function(e){return Promise.all(e)},s.spread=r(31),e.exports=s,e.exports.default=s},function(e,t){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,t,r){"use strict";function o(e){this.defaults=e,this.interceptors={request:new a,response:new a}}var n=r(1),i=r(0),a=r(25),l=r(26);o.prototype.request=function(e){"string"===typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(n,{method:"get"},this.defaults,e),e.method=e.method.toLowerCase();var t=[l,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},i.forEach(["delete","get","head","options"],function(e){o.prototype[e]=function(t,r){return this.request(i.merge(r||{},{method:e,url:t}))}}),i.forEach(["post","put","patch"],function(e){o.prototype[e]=function(t,r,o){return this.request(i.merge(o||{},{method:e,url:t,data:r}))}}),e.exports=o},function(e,t){function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function n(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function i(e){if(u===clearTimeout)return clearTimeout(e);if((u===o||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{return u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}function a(){d&&f&&(d=!1,f.length?h=f.concat(h):g=-1,h.length&&l())}function l(){if(!d){var e=n(a);d=!0;for(var t=h.length;t;){for(f=h,h=[];++g<t;)f&&f[g].run();g=-1,t=h.length}f=null,d=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function p(){}var c,u,m=e.exports={};!function(){try{c="function"===typeof setTimeout?setTimeout:r}catch(e){c=r}try{u="function"===typeof clearTimeout?clearTimeout:o}catch(e){u=o}}();var f,h=[],d=!1,g=-1;m.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new s(e,t)),1!==h.length||d||n(l)},s.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=p,m.addListener=p,m.once=p,m.off=p,m.removeListener=p,m.removeAllListeners=p,m.emit=p,m.prependListener=p,m.prependOnceListener=p,m.listeners=function(e){return[]},m.binding=function(e){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(e){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},function(e,t,r){"use strict";var o=r(0);e.exports=function(e,t){o.forEach(e,function(r,o){o!==t&&o.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[o])})}},function(e,t,r){"use strict";var o=r(6);e.exports=function(e,t,r){var n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(o("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},function(e,t,r){"use strict";e.exports=function(e,t,r,o,n){return e.config=t,r&&(e.code=r),e.request=o,e.response=n,e}},function(e,t,r){"use strict";function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var n=r(0);e.exports=function(e,t,r){if(!t)return e;var i;if(r)i=r(t);else if(n.isURLSearchParams(t))i=t.toString();else{var a=[];n.forEach(t,function(e,t){null!==e&&"undefined"!==typeof e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},function(e,t,r){"use strict";var o=r(0),n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,i,a={};return e?(o.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=o.trim(e.substr(0,i)).toLowerCase(),r=o.trim(e.substr(i+1)),t){if(a[t]&&n.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}}),a):a}},function(e,t,r){"use strict";var o=r(0);e.exports=o.isStandardBrowserEnv()?function(){function e(e){var t=e;return r&&(n.setAttribute("href",t),t=n.href),n.setAttribute("href",t),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}var t,r=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");return t=e(window.location.href),function(r){var n=o.isString(r)?e(r):r;return n.protocol===t.protocol&&n.host===t.host}}():function(){return function(){return!0}}()},function(e,t,r){"use strict";var o=r(0);e.exports=o.isStandardBrowserEnv()?function(){return{write:function(e,t,r,n,i,a){var l=[];l.push(e+"="+encodeURIComponent(t)),o.isNumber(r)&&l.push("expires="+new Date(r).toGMTString()),o.isString(n)&&l.push("path="+n),o.isString(i)&&l.push("domain="+i),!0===a&&l.push("secure"),document.cookie=l.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,r){"use strict";function o(){this.handlers=[]}var n=r(0);o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){n.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},function(e,t,r){"use strict";function o(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var n=r(0),i=r(27),a=r(7),l=r(1),s=r(28),p=r(29);e.exports=function(e){return o(e),e.baseURL&&!s(e.url)&&(e.url=p(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||l.adapter)(e).then(function(t){return o(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return a(t)||(o(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,r){"use strict";var o=r(0);e.exports=function(e,t,r){return o.forEach(r,function(r){e=r(e,t)}),e}},function(e,t,r){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,r){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,r){"use strict";function o(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new n(e),t(r.reason))})}var n=r(8);o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},function(e,t,r){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=r(3),s=r.n(l),p=r(2),c=r.n(p),u=function(){function e(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,r,o){return r&&e(t.prototype,r),o&&e(t,o),t}}(),m=wp.element,f=m.Component,h=m.Fragment,__=wp.i18n.__,d=wp.components,g=d.PanelBody,b=d.Placeholder,w=(d.QueryControls,d.RangeControl),C=d.SelectControl,v=d.Spinner,E=(d.TextControl,d.ToggleControl),_=(d.Toolbar,d.withAPIData,d.ColorPalette,d.Button),y=wp.editor,T=y.InspectorControls,P=y.BlockControls,S=y.MediaUpload,N=y.RichText,x=y.AlignmentToolbar,k=y.PanelColorSettings,A=function(e){function t(){n(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.get_users=function(){s.a.post(mpp_gutenberg.rest_url+"/get_users",{},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r,n=Array(),i=Array(),a=0,l="",s=0,p="",c="",u="",m="";$.each(t.data,function(e,t){n[t.ID]={profile_pictures:t.profile_pictures,has_profile_picture:t.has_profile_picture,display_name:t.display_name,description:t.description,is_user_logged_in:t.is_user_logged_in,profile_picture_id:t.profile_picture_id,default_image:t.default_image,permalink:t.permalink},t.is_user_logged_in&&(a=t.ID),i.push({value:t.ID,label:t.display_name})}),0!==e.props.attributes.user_id&&(a=e.props.attributes.user_id);var f=n[a];f.has_profile_picture?(l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:f.profile_pictures.thumbnail,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:f.profile_picture_id,p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:f.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",m=f.permalink,c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:f.description):(p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:f.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:f.description,l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:f.default_image,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:0,m=f.permalink),void 0==c&&(c=""),e.setState((r={loading:!1,users:n,active_user:a,user_list:i,profile_picture:l,profile_picture_id:s},o(r,"active_user",a),o(r,"profile_name",p),o(r,"profile_title",u),o(r,"profile_description",c),o(r,"profile_url",m),r)),e.props.setAttributes({profileContent:c,profileName:p,profileTitle:u,profileURL:m,profileImgID:s,profileImgURL:l})})},e.on_user_change=function(t){var r=e.state.users[t],o="",n=0;r.has_profile_picture?(o=e.state.users[t].profile_pictures.thumbnail,n=e.state.users[t].profile_picture_id):(o=mpp_gutenberg.mystery_man,n=0);var i=e.state.users[t].description;void 0===i&&(i=""),e.props.setAttributes({profileName:e.state.users[t].display_name,profileContent:i,profileTitle:"",profileURL:e.state.users[t].permalink,profileImgURL:o}),e.setState({profile_name:e.state.users[t].display_name,profile_description:i,profile_title:"",profile_picture:o,profile_picture_id:n,active_user:t,profile_url:e.state.users[t].permalink})},e.componentDidMount=function(){e.get_users()},e.handleImageChange=function(t,r){e.setState({profile_picture:r,profile_picture_id:t})},e.onChangeName=function(t){e.setState({profile_name:t})},e.onChangeTitle=function(t){e.setState({profile_title:t})},e.onChangeProfileText=function(t){e.setState({profile_description:t})},e.state={loading:!0,users:!1,user_list:!1,profile_picture:!1,profile_picture_id:0,active_user:!1,profile_description:"",profile_name:"",profile_title:""},e}return a(t,e),u(t,[{key:"render",value:function(){var e=this,t=this.props,r=t.attributes,o=r.profileName,n=r.profileTitle,i=r.profileContent,a=r.profileAlignment,l=r.profileImgURL,s=r.profileImgID,p=r.profileURL,u=r.profileFontSize,m=r.profileBackgroundColor,f=r.profileTextColor,d=r.profileAvatarShape,y=r.profileViewPostsBackgroundColor,A=r.profileViewPostsTextColor,I=r.showTitle,L=r.showName,O=r.showDescription,V=r.showViewPosts,H=(t.attributes,t.isSelected,t.editable,t.className,t.setAttributes);this.state.profile_pictures;s=this.state.profile_picture_id,l=this.state.profile_picture,o=this.state.profile_name,i=this.state.profile_description,n=this.state.profile_title,p=this.state.profile_url;var R=function(e){return H({profileBackgroundColor:e})},M=function(e){return H({profileTextColor:e})},B=function(e){return H({profileViewPostsBackgroundColor:e})},U=function(e){return H({profileViewPostsTextColor:e})},D=[{value:"square",label:__("Square","metronet-profile-picture")},{value:"round",label:__("Round","metronet-profile-picture")}];return wp.element.createElement(h,null,this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(b,null,__("Loading...","metronet-profile-picture"),wp.element.createElement(v,null))),!this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(T,null,wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a user","metronet-profile-picture"),value:this.state.active_user,options:this.state.user_list,onChange:function(t){e.on_user_change(t),H({user_id:Number(t)})}}),wp.element.createElement(w,{label:__("Font Size","metronet-profile-picture"),value:u,onChange:function(t){return e.props.setAttributes({profileFontSize:t})},min:14,max:24,step:1}),wp.element.createElement(C,{label:__("Avatar Shape","metronet-profile-picture"),description:__("Choose between a round or square avatar shape.","metronet-profile-picture"),options:D,value:d,onChange:function(t){return e.props.setAttributes({profileAvatarShape:t})}}),wp.element.createElement(k,{title:__("Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:m,onChange:R,label:__("Background Color","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:f,onChange:M,label:__("Text Color","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("View Posts Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:y,onChange:B,label:__("View Posts Background","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("View Posts Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:A,onChange:U,label:__("View Posts Text Color","metronet-profile-picture")}]}),wp.element.createElement(E,{label:__("Show Name","metronet-profile-picture"),checked:L,onChange:function(){return e.props.setAttributes({showName:!L})}}),wp.element.createElement(E,{label:__("Show Title","metronet-profile-picture"),checked:I,onChange:function(){return e.props.setAttributes({showTitle:!I})}}),wp.element.createElement(E,{label:__("Show Description","metronet-profile-picture"),checked:O,onChange:function(){return e.props.setAttributes({showDescription:!O})}}),wp.element.createElement(E,{label:__("Show View Posts","metronet-profile-picture"),checked:V,onChange:function(){return e.props.setAttributes({showViewPosts:!V})}}))),wp.element.createElement(P,{key:"controls"},wp.element.createElement(x,{value:a,onChange:function(e){return H({profileAlignment:e})}})),wp.element.createElement("div",{className:c()("mpp-profile-wrap","legacy",a,d,"mt-font-size-"+u,"mpp-block-profile"),style:{backgroundColor:m,color:f}},wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap")},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),H({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(_,{onClick:t},s?wp.element.createElement("img",{class:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),wp.element.createElement("div",{className:"mpp-content-wrap"},L&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:f},onChange:function(t){e.onChangeName(t),H({profileName:t})}}),I&&wp.element.createElement(N,{tagName:"p",placeholder:__("Add title","atomic-blocks"),value:n,className:"mpp-profile-title",style:{color:f},onChange:function(t){e.onChangeTitle(t),H({profileTitle:t})}}),O&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),H({profileContent:t})}}))),p&&!!p.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts"},V&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:y,color:A}},wp.element.createElement("a",{href:p,style:{backgroundColor:y,color:A}},__("View Posts","metronet-profile-picture")))))))}}]),t}(f);t.a=A}]);
1
+ !function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=9)}([function(e,t,r){"use strict";function o(e){return"[object Array]"===T.call(e)}function n(e){return"[object ArrayBuffer]"===T.call(e)}function i(e){return"undefined"!==typeof FormData&&e instanceof FormData}function a(e){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function l(e){return"string"===typeof e}function s(e){return"number"===typeof e}function p(e){return"undefined"===typeof e}function c(e){return null!==e&&"object"===typeof e}function u(e){return"[object Date]"===T.call(e)}function m(e){return"[object File]"===T.call(e)}function f(e){return"[object Blob]"===T.call(e)}function h(e){return"[object Function]"===T.call(e)}function d(e){return c(e)&&h(e.pipe)}function g(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function b(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function C(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}function v(){function e(e,r){"object"===typeof t[r]&&"object"===typeof e?t[r]=v(t[r],e):t[r]=e}for(var t={},r=0,o=arguments.length;r<o;r++)C(arguments[r],e);return t}function E(e,t,r){return C(t,function(t,o){e[o]=r&&"function"===typeof t?_(t,r):t}),e}var _=r(4),y=r(15),T=Object.prototype.toString;e.exports={isArray:o,isArrayBuffer:n,isBuffer:y,isFormData:i,isArrayBufferView:a,isString:l,isNumber:s,isObject:c,isUndefined:p,isDate:u,isFile:m,isBlob:f,isFunction:h,isStream:d,isURLSearchParams:g,isStandardBrowserEnv:w,forEach:C,merge:v,extend:E,trim:b}},function(e,t,r){"use strict";(function(t){function o(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var n=r(0),i=r(18),a={"Content-Type":"application/x-www-form-urlencoded"},l={adapter:function(){var e;return"undefined"!==typeof XMLHttpRequest?e=r(5):"undefined"!==typeof t&&(e=r(5)),e}(),transformRequest:[function(e,t){return i(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(o(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(o(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"===typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],function(e){l.headers[e]={}}),n.forEach(["post","put","patch"],function(e){l.headers[e]=n.merge(a)}),e.exports=l}).call(t,r(17))},function(e,t,r){var o,n;!function(){"use strict";function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var n=typeof o;if("string"===n||"number"===n)e.push(o);else if(Array.isArray(o)&&o.length){var a=r.apply(null,o);a&&e.push(a)}else if("object"===n)for(var l in o)i.call(o,l)&&o[l]&&e.push(l)}}return e.join(" ")}var i={}.hasOwnProperty;"undefined"!==typeof e&&e.exports?(r.default=r,e.exports=r):(o=[],void 0!==(n=function(){return r}.apply(t,o))&&(e.exports=n))}()},function(e,t,r){e.exports=r(14)},function(e,t,r){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),o=0;o<r.length;o++)r[o]=arguments[o];return e.apply(t,r)}}},function(e,t,r){"use strict";var o=r(0),n=r(19),i=r(21),a=r(22),l=r(23),s=r(6);e.exports=function(e){return new Promise(function(t,p){var c=e.data,u=e.headers;o.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(e.auth){var f=e.auth.username||"",h=e.auth.password||"";u.Authorization="Basic "+btoa(f+":"+h)}if(m.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),m.timeout=e.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in m?a(m.getAllResponseHeaders()):null,o=e.responseType&&"text"!==e.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:r,config:e,request:m};n(t,p,i),m=null}},m.onerror=function(){p(s("Network Error",e,null,m)),m=null},m.ontimeout=function(){p(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",m)),m=null},o.isStandardBrowserEnv()){var d=r(24),g=(e.withCredentials||l(e.url))&&e.xsrfCookieName?d.read(e.xsrfCookieName):void 0;g&&(u[e.xsrfHeaderName]=g)}if("setRequestHeader"in m&&o.forEach(u,function(e,t){"undefined"===typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),e.withCredentials&&(m.withCredentials=!0),e.responseType)try{m.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"===typeof e.onDownloadProgress&&m.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){m&&(m.abort(),p(e),m=null)}),void 0===c&&(c=null),m.send(c)})}},function(e,t,r){"use strict";var o=r(20);e.exports=function(e,t,r,n,i){var a=new Error(e);return o(a,t,r,n,i)}},function(e,t,r){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,r){"use strict";function o(e){this.message=e}o.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},o.prototype.__CANCEL__=!0,e.exports=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(10)},function(e,t,r){"use strict";var o=r(11),n=(r.n(o),r(12)),i=(r.n(n),r(13)),a=r(32),l=r(2),s=r.n(l),__=wp.i18n.__,p=wp.blocks.registerBlockType,c=wp.element,u=(c.Component,c.Fragment),m=wp.editor.RichText,f={profileName:{type:"string",default:""},profileTitle:{type:"string",default:""},profileContent:{type:"string",default:""},profileAlignment:{type:"string"},profileImgURL:{type:"string",source:"attribute",attribute:"src",selector:"img",default:""},profileImgID:{type:"number",default:""},profileURL:{type:"string",default:""},profileBackgroundColor:{type:"string",default:"#f2f2f2"},profileTextColor:{type:"string",default:"#32373c"},profileViewPostsBackgroundColor:{type:"string",default:"#cf6d38"},profileViewPostsTextColor:{type:"string",default:"#FFFFFF"},profileViewPostsWidth:{type:"number",default:100},profileFontSize:{type:"number",default:18},profileAvatarShape:{type:"string",default:"square"},showName:{type:"bool",default:!0},showTitle:{type:"bool",default:!0},showDescription:{type:"bool",default:!0},showViewPosts:{type:"bool",default:!0},user_id:{type:"number",default:0}};p("mpp/user-profile",{title:__("User Profile Legacy","metronet-profile-picture"),icon:wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),category:"mpp",attributes:f,edit:a.a,save:function(e){var t=e.attributes,r=t.profileName,o=t.profileTitle,n=t.profileContent,i=t.profileAlignment,a=t.profileImgURL,l=(t.profileImgID,t.profileFontSize),p=t.profileBackgroundColor,c=t.profileTextColor,f=(t.profileLinkColor,t.profileAvatarShape),h=t.profileViewPostsBackgroundColor,d=t.profileViewPostsTextColor,g=t.profileURL,b=t.showTitle,w=t.showName,C=t.showDescription,v=t.showViewPosts;return wp.element.createElement(u,null,wp.element.createElement("div",{className:s()("mpp-profile-wrap",i,f,"mt-font-size-"+l,"mpp-block-profile"),style:{backgroundColor:p,color:c}},wp.element.createElement("div",{className:s()("mpp-profile-gutenberg-wrap","mpp-block-profile"),style:{backgroundColor:p,color:c}},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement("img",{className:"mpp-profile-avatar",src:a,alt:"avatar"}))),wp.element.createElement("div",{className:"mpp-content-wrap"},r&&!!r.length&&w&&wp.element.createElement(m.Content,{tagName:"h2",className:"mpp-profile-name",style:{color:c},value:r}),o&&!!o.length&&b&&wp.element.createElement(m.Content,{tagName:"p",className:"mpp-profile-title",style:{color:c},value:o}),n&&!!n.length&&C&&wp.element.createElement(m.Content,{tagName:"div",className:"mpp-profile-text",value:n}))),g&&!!g.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts"},v&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:h,color:d}},wp.element.createElement("a",{href:g,style:{backgroundColor:h,color:d}},__("View Posts","metronet-profile-picture"))))))}}),p("mpp/user-profile-enhanced",{title:__("User Profile","metronet-profile-picture"),icon:wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),category:"mpp",getEditWrapperProps:function(e){},edit:i.a,save:function(){return null}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=r(3),s=r.n(l),p=r(2),c=r.n(p),u=function(){function e(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,r,o){return r&&e(t.prototype,r),o&&e(t,o),t}}(),m=wp.element,f=m.Component,h=m.Fragment,__=wp.i18n.__,d=wp.components,g=d.PanelBody,b=d.Placeholder,w=(d.QueryControls,d.RangeControl),C=d.SelectControl,v=d.Spinner,E=d.TextControl,_=d.ToggleControl,y=(d.Toolbar,d.withAPIData,d.ColorPalette,d.Button),T=wp.editor,P=T.InspectorControls,S=(T.BlockControls,T.MediaUpload),N=T.RichText,x=(T.AlignmentToolbar,T.PanelColorSettings),k=function(e){function t(){n(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));e.get_users=function(){s.a.post(mpp_gutenberg.rest_url+"/get_users",{},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r,n=Array(),i=Array(),a=0,l="",s=0,p="",c="",u="",m="",f="";jQuery.each(t.data,function(e,t){n[t.ID]={profile_pictures:t.profile_pictures,has_profile_picture:t.has_profile_picture,display_name:t.display_name,description:t.description,is_user_logged_in:t.is_user_logged_in,profile_picture_id:t.profile_picture_id,default_image:t.default_image,permalink:t.permalink},t.is_user_logged_in&&(a=t.ID),i.push({value:t.ID,label:t.display_name})}),0!==e.props.attributes.user_id&&(a=e.props.attributes.user_id);var h=n[a];h.has_profile_picture?(l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:h.profile_pictures.thumbnail,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:h.profile_picture_id,p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:h.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",m=h.permalink,c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:h.description,f=e.props.attributes.showWebsite):(p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:h.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:h.description,l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:h.default_image,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:0,m=h.permalink,f=e.props.attributes.showWebsite),void 0==c&&(c=""),e.setState((r={loading:!1,users:n,active_user:a,user_list:i,profile_picture:l,profile_picture_id:s},o(r,"active_user",a),o(r,"profile_name",p),o(r,"profile_name_unfiltered",h.display_name),o(r,"profile_title",u),o(r,"profile_description",c),o(r,"profile_url",m),o(r,"show_website",f),r)),e.props.setAttributes(o({profileContent:c,profileName:p,profileTitle:u,profileURL:m,profileImgID:s,profileImgURL:l,showWebsite:f,showSocialMedia:!0},"profileName",h.display_name))})},e.on_user_change=function(t){var r=e.state.users[t],n="",i=0,a="";r.has_profile_picture?(n=e.state.users[t].profile_pictures.thumbnail,i=e.state.users[t].profile_picture_id):(n=mpp_gutenberg.mystery_man,i=0);var l=e.state.users[t].description;void 0===l&&(l=""),a=e.state.users[t].display_name,e.props.setAttributes(o({profileName:a,profileContent:l,profileTitle:"",profileURL:e.state.users[t].permalink,profileImgURL:n,tabbedAuthorSubHeading:"",tabbedAuthorProfileTitle:"",socialFacebook:"",socialGitHub:"",socialInstagram:"",socialLinkedIn:"",socialPinterest:"",socialTwitter:"",socialWordPress:"",socialYouTube:""},"profileName",e.state.users[t].display_name)),e.setState({profile_name_unfiltered:e.state.users[t].display_name,profile_name:a,profile_description:l,profile_title:"",profile_picture:n,profile_picture_id:i,active_user:t,profile_url:e.state.users[t].permalink,socialFacebook:"",socialGitHub:"",socialInstagram:"",socialLinkedIn:"",socialPinterest:"",socialTwitter:"",socialWordPress:"",socialYouTube:""}),e.getLatestPosts()},e.getLatestPosts=function(){e.setState({loadingLatestPosts:!0});s.a.post(mpp_gutenberg.rest_url+"/get_posts",{user_id:e.state.active_user},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r=t.data,o=r.map(function(e){return wp.element.createElement("li",{key:e.ID},wp.element.createElement("a",{href:e.permalink},e.post_title))});e.setState({loadingLatestPosts:!1,latestPosts:o})})},e.componentDidMount=function(){e.get_users()},e.handleImageChange=function(t,r){e.setState({profile_picture:r,profile_picture_id:t})},e.onChangeName=function(t){e.setState({profile_name:t})},e.onChangeTitle=function(t){e.setState({profile_title:t})},e.onChangeProfileText=function(t){e.setState({profile_description:t})},e.onThemeChange=function(t){e.setState({theme:t})},e.handleFacebookChange=function(t){e.setState({socialFacebook:t})},e.handleYouTubeChange=function(t){e.setState({socialYouTube:t})},e.handleGitHubChange=function(t){e.setState({socialGitHub:t})},e.handleLinkedInChange=function(t){e.setState({socialLinkedIn:t})},e.handleTwitterChange=function(t){e.setState({socialTwitter:t})},e.handleWordPressChange=function(t){e.setState({socialWordPress:t})},e.handleWebsiteChange=function(t){e.setState({website:t}),""!==t&&e.props.setAttributes({showWebsite:!0})},e.handleInstagramChange=function(t){e.setState({socialInstagram:t})},e.handlePinterestChange=function(t){e.setState({socialPinterest:t})},e.handleSocialMediaChange=function(t){e.setState({showSocialMedia:t}),e.props.setAttributes({showSocialMedia:t})},e.handleSocialMediaOptionChange=function(t){e.setState({socialMediaOptions:t})},e.onChangeTabbedProfileText=function(t){e.setState({tabbedAuthorProfile:t})},e.onChangeTabbedSubHeading=function(t){e.setState({tabbedAuthorSubHeading:t})},e.onChangeActiveProfileTab=function(){e.setState({activeTab:"profile"})},e.onChangeActivePostTab=function(){e.setState({activeTab:"latest",loadingLatestPosts:!0}),e.getLatestPosts()},e.onChangetabbedAuthorProfile=function(t){e.setState({tabbedAuthorProfile:t})},e.onChangetabbedAuthorProfileHeading=function(t){e.setState({tabbedAuthorProfileHeading:t})},e.onChangetabbedAuthorLatestPosts=function(t){e.setState({tabbedAuthorLatestPosts:t})},e.onChangeProfileTabColor=function(t){e.setState({profileTabColor:t}),e.props.setAttributes({profileTabColor:t})},e.onChangePostsTabColor=function(t){e.setState({profileTabPostsColor:t}),e.props.setAttributes({profileTabPostsColor:t})},e.onChangePostsTabHeadlineColor=function(t){e.setState({profileTabHeadlineColor:t}),e.props.setAttributes({profileTabHeadlineColor:t})},e.onChangeProfileTabPostColorText=function(t){e.setState({profileTabPostsTextColor:t}),e.props.setAttributes({profileTabPostsTextColor:t})},e.onChangeProfileTabHeadlineColorText=function(t){e.setState({profileTabHeadlineTextColor:t}),e.props.setAttributes({profileTabHeadlineTextColor:t})},e.onChangeProfileTabColorText=function(t){e.setState({profileTabTextColor:t}),e.props.setAttributes({profileTabTextColor:t})},e.onLatestPostsChange=function(t){e.setState({profileLatestPostsOptionsValue:t})},e.onCompactAlignmentChange=function(t){e.setState({profileCompactAlignment:t})};var r=Array();return r.push({value:"regular",label:__("Regular","metronet-profile-picture")}),r.push({value:"profile",label:__("Profile","metronet-profile-picture")}),r.push({value:"tabbed",label:__("Tabbed","metronet-profile-picture")}),r.push({value:"compact",label:__("Compact","metronet-profile-picture")}),e.state={loading:!0,users:!1,user_list:!1,profile_picture:e.props.attributes.profileImgURL,profile_picture_id:e.props.attributes.profileImgID,active_user:!1,profile_description:"",profile_name:"",profile_name_unfiltered:"",profile_title:"",show_website:e.props.attributes.showWebsite,profileViewPosts:e.props.attributes.profileViewPosts,profileViewWebsite:e.props.attributes.profileViewWebsite,theme:e.props.attributes.theme,themes:r,socialFacebook:e.props.attributes.socialFacebook,socialGitHub:e.props.attributes.socialGitHub,socialLinkedIn:e.props.attributes.socialLinkedIn,socialPinterest:e.props.attributes.socialPinterest,socialTwitter:e.props.attributes.socialTwitter,socialWordPress:e.props.attributes.socialWordPress,socialYouTube:e.props.attributes.socialYouTube,socialInstagram:e.props.attributes.socialInstagram,website:e.props.attributes.website,showSocialMedia:!0,socialMediaOptions:e.props.attributes.socialMediaOptions,socialMediaColors:e.props.attributes.socialMediaColors,tabbedAuthorProfile:e.props.attributes.tabbedAuthorProfile,tabbedAuthorLatestPosts:e.props.attributes.tabbedAuthorLatestPosts,tabbedAuthorSubHeading:e.props.attributes.tabbedAuthorSubHeading,tabbedAuthorProfileHeading:e.props.attributes.tabbedAuthorProfileHeading,activeTab:"profile",loadingLatestPosts:!0,latestPosts:{},profileTabColor:e.props.attributes.profileTabColor,profileTabHeadlineColor:e.props.attributes.profileTabHeadlineColor,profileTabPostsColor:e.props.attributes.profileTabPostsColor,profileTabHeadlineTextColor:e.props.attributes.profileTabHeadlineTextColor,profileTabTextColor:e.props.attributes.profileTabTextColor,profileTabPostsTextColor:e.props.attributes.profileTabPostsTextColor,profileLatestPostsOptionsValue:e.props.attributes.profileLatestPostsOptionsValue,profileCompactAlignment:e.props.attributes.profileCompactAlignment},e}return a(t,e),u(t,[{key:"render",value:function(){var e=this,t=this.props,r=t.attributes,o=r.profileName,n=r.profileTitle,i=r.profileContent,a=r.profileAlignment,l=r.profileImgURL,s=r.profileImgID,p=r.profileURL,u=r.profileFontSize,m=r.buttonFontSize,f=r.headerFontSize,d=r.profileBackgroundColor,T=r.profileTextColor,k=r.profileAvatarShape,A=r.profileViewPostsBackgroundColor,I=r.profileViewPostsTextColor,L=r.profileViewPosts,O=r.profileViewWebsite,V=r.showTitle,H=r.showName,R=r.showDescription,M=r.showViewPosts,B=r.showPostsWidth,U=(r.showSocialMedia,r.showWebsite),D=(r.theme,r.theme_list,r.socialFacebook,r.socialGitHub,r.socialLinkedIn,r.socialPinterest,r.socialTwitter,r.socialWordPress,r.socialYouTube,r.socialMediaColors),F=r.profileWebsiteBackgroundColor,W=r.profileWebsiteTextColor,j=r.padding,z=r.border,q=r.borderRounded,Z=r.borderColor,G=r.profileLinkColor,Y=(r.tabbedAuthorProfile,r.tabbedAuthorSubHeading,r.tabbedAuthorProfileTitle),X=(r.profileLatestPostsOptionsValue,t.attributes,t.isSelected,t.editable,t.className,t.setAttributes);this.state.profile_pictures;s=this.state.profile_picture_id,l=this.state.profile_picture,o=this.state.profile_name,i=this.state.profile_description,n=this.state.profile_title,p=this.state.profile_url,B=""!==this.state.website&&this.props.attributes.showWebsite?"":"100%",X({showPostsWidth:B});var $=function(e){return X({profileBackgroundColor:e})},J=function(e){return X({profileTextColor:e})},Q=function(e){return X({profileViewPostsBackgroundColor:e})},K=function(e){return X({profileViewPostsTextColor:e})},ee=function(e){return X({profileWebsiteBackgroundColor:e})},te=function(e){return X({profileWebsiteTextColor:e})},re=function(e){return X({socialMediaColors:e})},oe=function(e){return X({borderColor:e})},ne=function(e){return X({profileLinkColor:e})},ie=[{value:"square",label:__("Square","metronet-profile-picture")},{value:"round",label:__("Round","metronet-profile-picture")}],ae=[{value:"colors",label:__("Brand Colors","metronet-profile-picture")},{value:"custom",label:__("Custom","metronet-profile-picture")}],le=[{value:"none",label:__("None","metronet-profile-picture")},{value:"white",label:__("White","metronet-profile-picture")},{value:"light",label:__("Light","metronet-profile-picture")},{value:"black",label:__("Black","metronet-profile-picture")},{value:"magenta",label:__("Magenta","metronet-profile-picture")},{value:"blue",label:__("Blue","metronet-profile-picture")},{value:"green",label:__("Green","metronet-profile-picture")}],se=[{value:"left",label:__("Left","metronet-profile-picture")},{value:"center",label:__("Center","metronet-profile-picture")},{value:"right",label:__("Right","metronet-profile-picture")}],pe="none",ce="";return"center"===this.state.profileCompactAlignment&&(pe="none",ce="0 auto"),"left"===this.state.profileCompactAlignment&&(pe="left",ce="0"),"right"===this.state.profileCompactAlignment&&(pe="right",ce="0"),wp.element.createElement(h,null,this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(b,null,wp.element.createElement("div",null,wp.element.createElement("svg",{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:"125px",height:"125px",viewBox:"0 0 753.53 979.74"},wp.element.createElement("title",null,"upp"),wp.element.createElement("path",{d:"M806.37,185.9c0,40.27-30.49,72.9-68.11,72.9s-68.17-32.63-68.17-72.9S700.62,113,738.26,113,806.37,145.64,806.37,185.9Z",transform:"translate(-123.47 -11)",fill:"#4063ad"}),wp.element.createElement("path",{d:"M330.36,183.8c0,40.27-30.49,72.9-68.12,72.9s-68.17-32.63-68.17-72.9,30.52-72.87,68.17-72.87S330.36,143.56,330.36,183.8Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M331.3,888.13V698.21H329c-31.64,0-57.28-27.45-57.28-61.29V336.5a118.37,118.37,0,0,1,5.43-34.79H179.84c-31.94,0-56.37,31.57-56.37,56.34V601.46h48.32V888.13Z",transform:"translate(-123.47 -11)",fill:"#a34d9c"}),wp.element.createElement("path",{d:"M388.59,636.92V990.74H611.88V636.92H671.5V336.5c0-30.63-27.64-69.57-69.6-69.57H398.56c-39.44,0-69.61,38.94-69.61,69.57V636.92Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M584.3,101c0,49.69-37.63,90-84,90S416.12,150.67,416.12,101s37.66-90,84.14-90S584.3,51.27,584.3,101Z",transform:"translate(-123.47 -11)",fill:"#f4831f"}),wp.element.createElement("path",{d:"M820.61,303.79H724.08a121.69,121.69,0,0,1,4.7,32.71V636.92c0,33.84-25.64,61.29-57.28,61.29h-2.33v192H828.7V603.54H877V360.16C877,335.36,854.62,303.79,820.61,303.79Z",transform:"translate(-123.47 -11)",fill:"#4063ad"})),wp.element.createElement("div",{className:"mpp-spinner"},wp.element.createElement(v,null))))),!this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(P,null,wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a user","metronet-profile-picture"),value:this.state.active_user,options:this.state.user_list,onChange:function(t){e.on_user_change(t),X({user_id:Number(t)})}}),wp.element.createElement(C,{label:__("Select a theme","metronet-profile-picture"),value:this.state.theme,options:this.state.themes,onChange:function(t){e.onThemeChange(t),X({theme:t})}}),"compact"===this.state.theme&&wp.element.createElement(C,{label:__("Select an alignment","metronet-profile-picture"),value:this.state.profileCompactAlignment,options:se,onChange:function(t){e.onCompactAlignmentChange(t),X({profileCompactAlignment:t})}}),wp.element.createElement(C,{label:__("Avatar Shape","metronet-profile-picture"),description:__("Choose between a round or square avatar shape.","metronet-profile-picture"),options:ie,value:k,onChange:function(t){return e.props.setAttributes({profileAvatarShape:t})}}),"tabbed"!==this.state.theme&&wp.element.createElement(E,{label:__("Website","metronet-profile-picture"),value:this.state.website,onChange:function(t){e.props.setAttributes({website:t}),e.handleWebsiteChange(t)}}),wp.element.createElement(_,{label:__("Show Name","metronet-profile-picture"),checked:H,onChange:function(){return e.props.setAttributes({showName:!H})}}),wp.element.createElement(_,{label:__("Show Title","metronet-profile-picture"),checked:V,onChange:function(){return e.props.setAttributes({showTitle:!V})}}),wp.element.createElement(_,{label:__("Show Description","metronet-profile-picture"),checked:R,onChange:function(){return e.props.setAttributes({showDescription:!R})}}),"tabbed"!==this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(_,{label:__("Show View Posts","metronet-profile-picture"),checked:M,onChange:function(){return e.props.setAttributes({showViewPosts:!M})}}),M&&wp.element.createElement(E,{label:__("View Posts Text","metronet-profile-picture"),value:L,onChange:function(t){e.props.setAttributes({profileViewPosts:t})}}),wp.element.createElement(_,{label:__("Show Website","metronet-profile-picture"),checked:this.state.show_website,onChange:function(t){e.props.setAttributes({showWebsite:t}),e.setState({show_website:t})}}),this.state.show_website&&wp.element.createElement(E,{label:__("View Website Text","metronet-profile-picture"),value:O,onChange:function(t){e.props.setAttributes({profileViewWebsite:t})}})),wp.element.createElement(_,{label:__("Show Social Media","metronet-profile-picture"),checked:this.state.showSocialMedia,onChange:function(t){e.props.setAttributes({showSocialMedia:t}),e.handleSocialMediaChange(t)}})),"tabbed"===this.state.theme&&wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a theme","metronet-profile-picture"),value:this.state.latestPostsTheme,options:{},onChange:function(t){e.on_user_change(t),X({user_id:Number(t)})}})),wp.element.createElement(g,{title:__("Colors","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(x,{title:__("Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:d,onChange:$,label:__("Background Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:T,onChange:J,label:__("Text Color","metronet-profile-picture")}]}),"profile"===this.state.theme&&wp.element.createElement(x,{title:__("Link Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:G,onChange:ne,label:__("Link Color","metronet-profile-picture")}]}),"tabbed"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(x,{title:__("Profile Tab Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabColor,onChange:this.onChangeProfileTabColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Tab Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabTextColor,onChange:this.onChangeProfileTabColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Posts Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabPostsColor,onChange:this.onChangePostsTabColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Post Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabPostsTextColor,onChange:this.onChangeProfileTabPostColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Headline Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabHeadlineColor,onChange:this.onChangePostsTabHeadlineColor,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Profile Headline Color Text","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:this.state.profileTabHeadlineColorText,onChange:this.onChangeProfileTabHeadlineColorText,label:__("Color","metronet-profile-picture")}]}),wp.element.createElement(C,{label:__("Select a Post Theme","metronet-profile-picture"),value:this.state.profileLatestPostsOptionsValue,options:le,onChange:function(t){e.onLatestPostsChange(t),X({profileLatestPostsOptionsValue:t})}})),"tabbed"!==this.state.theme&&"profile"!==this.state.theme&&wp.element.createElement(h,null,wp.element.createElement(x,{title:__("View Posts Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:A,onChange:Q,label:__("View Posts Background","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("View Posts Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:I,onChange:K,label:__("View Posts Text Color","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("Website Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:F,onChange:ee,label:__("View Website Background","metronet-profile-picture")}]}),wp.element.createElement(x,{title:__("View Website Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:W,onChange:te,label:__("View Website Text Color","metronet-profile-picture")}]}))),wp.element.createElement(g,{title:__("Spacing and Font Settings","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(w,{label:__("Header Font Size","metronet-profile-picture"),value:f,onChange:function(t){return e.props.setAttributes({headerFontSize:t})},min:14,max:32,step:1}),wp.element.createElement(w,{label:__("Font Size","metronet-profile-picture"),value:u,onChange:function(t){return e.props.setAttributes({profileFontSize:t})},min:14,max:24,step:1}),"tabbed"!==this.state.theme&&wp.element.createElement(w,{label:__("Button Size","metronet-profile-picture"),value:m,onChange:function(t){return e.props.setAttributes({buttonFontSize:t})},min:10,max:24,step:1}),wp.element.createElement(w,{label:__("Padding","metronet-profile-picture"),value:j,onChange:function(t){return e.props.setAttributes({padding:t})},min:0,max:60,step:1}),wp.element.createElement(w,{label:__("Border","metronet-profile-picture"),value:z,onChange:function(t){return e.props.setAttributes({border:t})},min:0,max:10,step:1}),wp.element.createElement(w,{label:__("Border Rounded","metronet-profile-picture"),value:q,onChange:function(t){return e.props.setAttributes({borderRounded:t})},min:0,max:10,step:1}),wp.element.createElement(x,{title:__("Border Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:Z,onChange:oe,label:__("Border Color","metronet-profile-picture")}]})),wp.element.createElement(g,{title:__("Social Media Settings","metronet-profile-picture"),initialOpen:!1},wp.element.createElement(C,{label:__("Social Media Colors","metronet-profile-picture"),value:this.state.socialMediaOptions,options:ae,onChange:function(t){X({socialMediaOptions:t}),e.handleSocialMediaOptionChange(t)}}),"custom"===this.state.socialMediaOptions&&wp.element.createElement(x,{title:__("Social Media Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:D,onChange:re,label:__("Social Media Color","metronet-profile-picture")}]}),wp.element.createElement(E,{label:__("Facebook","metronet-profile-picture"),value:this.state.socialFacebook,onChange:function(t){e.props.setAttributes({socialFacebook:t}),e.handleFacebookChange(t)}}),wp.element.createElement(E,{label:__("Twitter","metronet-profile-picture"),value:this.state.socialTwitter,onChange:function(t){e.props.setAttributes({socialTwitter:t}),e.handleTwitterChange(t)}}),wp.element.createElement(E,{label:__("Instagram","metronet-profile-picture"),value:this.state.socialInstagram,onChange:function(t){e.props.setAttributes({socialInstagram:t}),e.handleInstagramChange(t)}}),wp.element.createElement(E,{label:__("LinkedIn","metronet-profile-picture"),value:this.state.socialLinkedIn,onChange:function(t){e.props.setAttributes({socialLinkedIn:t}),e.handleLinkedInChange(t)}}),wp.element.createElement(E,{label:__("YouTube","metronet-profile-picture"),value:this.state.socialYouTube,onChange:function(t){e.props.setAttributes({socialYouTube:t}),e.handleYouTubeChange(t)}}),wp.element.createElement(E,{label:__("GitHub","metronet-profile-picture"),value:this.state.socialGitHub,onChange:function(t){e.props.setAttributes({socialGitHub:t}),e.handleGitHubChange(t)}}),wp.element.createElement(E,{label:__("Pinterest","metronet-profile-picture"),value:this.state.socialPinterest,onChange:function(t){e.props.setAttributes({socialPinterest:t}),e.handlePinterestChange(t)}}),wp.element.createElement(E,{label:__("WordPress","metronet-profile-picture"),value:this.state.socialWordPress,onChange:function(t){e.props.setAttributes({socialWordPress:t}),e.handleWordPressChange(t)}}))),"tabbed"!==this.state.theme&&wp.element.createElement("div",{className:c()("mpp-enhanced-profile-wrap",this.state.theme,a,k,"mpp-block-profile"),style:{padding:j+"px",border:z+"px solid "+Z,borderRadius:q+"px",backgroundColor:d,color:T,float:pe,margin:ce}},"regular"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),wp.element.createElement("div",{className:"mpp-content-wrap"},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),V&&wp.element.createElement(N,{tagName:"p",placeholder:__("Add title","atomic-blocks"),value:n,className:"mpp-profile-title",style:{color:T},onChange:function(t){e.onChangeTitle(t),X({profileTitle:t})}}),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}))),p&&!!p.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts",style:{width:B}},M&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:A,color:I,width:B,fontSize:m+"px"}},wp.element.createElement("a",{href:p,style:{backgroundColor:A,color:I}},L)),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-view-website",style:{backgroundColor:F,color:W,fontSize:m+"px"}},wp.element.createElement("a",{href:this.state.website,style:{backgroundColor:F,color:W}},O)))),"profile"===this.state.theme&&wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}),wp.element.createElement("div",{className:"mpp-profile-meta",style:{fontSize:m+"px"}},M&&wp.element.createElement("div",{className:"mpp-profile-link alignleft"},wp.element.createElement("a",{href:this.state.profile_url,style:{color:G}},__("View all posts by","metronet-profile-picture")," ",this.state.profile_name_unfiltered)),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-link alignright"},wp.element.createElement("a",{href:this.state.website,style:{color:G}},__("Website","metronet-profile-picture"))))),"compact"===this.state.theme&&wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap","mt-font-size-"+u)},H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),R&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}),wp.element.createElement("div",{className:"mpp-compact-meta"},M&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:A,color:I,width:"90%",margin:"0 auto 10px auto",fontSize:m+"px"}},wp.element.createElement("a",{href:p,style:{backgroundColor:A,color:I}},__("View Posts","metronet-profile-picture"))),""!=this.state.website&&U&&wp.element.createElement("div",{className:"mpp-profile-view-website",style:{backgroundColor:F,color:W,fontSize:m+"px",width:"90%",margin:"0 auto"}},wp.element.createElement("a",{href:this.state.website,style:{backgroundColor:F,color:W}},__("View Website","metronet-profile-picture"))))),1==this.state.showSocialMedia&&("regular"===this.state.theme||"compact"===this.state.theme||"profile"===this.state.theme)&&wp.element.createElement("div",{className:"mpp-social"},""!=this.state.socialFacebook&&wp.element.createElement("a",{href:this.state.socialFacebook},wp.element.createElement("svg",{className:"icon icon-facebook",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#facebook"}))),""!=this.state.socialTwitter&&wp.element.createElement("a",{href:this.state.socialTwitter},wp.element.createElement("svg",{className:"icon icon-twitter",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#twitter"}))),""!=this.state.socialInstagram&&wp.element.createElement("a",{href:this.state.socialInstagram},wp.element.createElement("svg",{className:"icon icon-instagram",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#instagram"}))),""!=this.state.socialPinterest&&wp.element.createElement("a",{href:this.state.socialPinterest},wp.element.createElement("svg",{className:"icon icon-pinterest",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#pinterest"}))),""!=this.state.socialLinkedIn&&wp.element.createElement("a",{href:this.state.socialLinkedIn},wp.element.createElement("svg",{className:"icon icon-linkedin",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#linkedin"}))),""!=this.state.socialYouTube&&wp.element.createElement("a",{href:this.state.socialYouTube},wp.element.createElement("svg",{className:"icon icon-youtube",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#youtube"}))),""!=this.state.socialGitHub&&wp.element.createElement("a",{href:this.state.socialGitHub},wp.element.createElement("svg",{className:"icon icon-github",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#github"}))),""!=this.state.socialWordPress&&wp.element.createElement("a",{href:this.state.socialWordPress},wp.element.createElement("svg",{className:"icon icon-wordpress",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#wordpress"}))))),"tabbed"===this.state.theme&&wp.element.createElement(h,null,wp.element.createElement("div",{className:c()("mpp-author-tabbed",this.state.theme,a,k,"mpp-block-profile")},wp.element.createElement("ul",{className:"mpp-author-tabs"},wp.element.createElement("li",{className:c()("mpp-tab-profile","profile"===this.state.activeTab?"active":""),onClick:this.onChangeActiveProfileTab,style:{backgroundColor:this.state.profileTabColor,color:this.state.profileTabTextColor}},wp.element.createElement(N,{tagName:"span",placeholder:__("Add tab name.","metronet-profile-picture"),value:this.state.tabbedAuthorProfile,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorProfile(t),X({tabbedAuthorProfile:t})}})),wp.element.createElement("li",{className:c()("mpp-tab-posts","latest"===this.state.activeTab?"active":""),onClick:this.onChangeActivePostTab,style:{backgroundColor:this.state.profileTabPostsColor,color:this.state.profileTabPostsTextColor}},wp.element.createElement(N,{tagName:"span",placeholder:__("Add tab name.","metronet-profile-picture"),value:this.state.tabbedAuthorLatestPosts,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorLatestPosts(t),X({tabbedAuthorLatestPosts:t})}}))),wp.element.createElement("div",{className:"mpp-tab-wrapper",style:{padding:j+"px",border:z+"px solid "+Z,borderRadius:q+"px",backgroundColor:d,color:T}},"profile"===this.state.activeTab&&wp.element.createElement(h,null,wp.element.createElement("div",{className:"mpp-author-social-wrapper"},wp.element.createElement("div",{className:"mpp-author-heading"},wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-heading",value:this.state.tabbedAuthorProfileHeading,formattingControls:[],onChange:function(t){e.onChangetabbedAuthorProfileHeading(t),X({profileTabHeadlineTextColor:t})},style:{backgroundColor:this.state.profileTabHeadlineColor,color:this.state.profileTabHeadlineTextColor}})),this.state.showSocialMedia&&wp.element.createElement("div",{className:"mpp-author-social"},wp.element.createElement("div",{className:"mpp-social"},""!=this.state.socialFacebook&&wp.element.createElement("a",{href:this.state.socialFacebook},wp.element.createElement("svg",{className:"icon icon-facebook",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#facebook"}))),""!=this.state.socialTwitter&&wp.element.createElement("a",{href:this.state.socialTwitter},wp.element.createElement("svg",{className:"icon icon-twitter",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#twitter"}))),""!=this.state.socialInstagram&&wp.element.createElement("a",{href:this.state.socialInstagram},wp.element.createElement("svg",{className:"icon icon-instagram",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#instagram"}))),""!=this.state.socialPinterest&&wp.element.createElement("a",{href:this.state.socialPinterest},wp.element.createElement("svg",{className:"icon icon-pinterest",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#pinterest"}))),""!=this.state.socialLinkedIn&&wp.element.createElement("a",{href:this.state.socialLinkedIn},wp.element.createElement("svg",{className:"icon icon-linkedin",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#linkedin"}))),""!=this.state.socialYouTube&&wp.element.createElement("a",{href:this.state.socialYouTube},wp.element.createElement("svg",{className:"icon icon-youtube",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#youtube"}))),""!=this.state.socialGitHub&&wp.element.createElement("a",{href:this.state.socialGitHub},wp.element.createElement("svg",{className:"icon icon-github",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#github"}))),""!=this.state.socialWordPress&&wp.element.createElement("a",{href:this.state.socialWordPress},wp.element.createElement("svg",{className:"icon icon-wordpress",role:"img",style:{fill:"custom"===this.state.socialMediaOptions?D:""}},wp.element.createElement("use",{href:"#wordpress"})))))),wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),X({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(y,{onClick:t},s?wp.element.createElement("img",{className:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}),wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-sub-heading",placeholder:__("Add profile description...","metronet-profile-picture"),value:this.state.tabbedAuthorSubHeading,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeTabbedSubHeading(t),X({tabbedAuthorSubHeading:t})}}))),wp.element.createElement("div",{className:"mpp-tabbed-profile-information"},V&&wp.element.createElement(N,{tagName:"div",className:"mpp-author-profile-title",placeholder:__("Add profile title...","metronet-profile-picture"),value:Y,formattingControls:["bold","italic","strikethrough","link"],onChange:function(e){X({tabbedAuthorProfileTitle:e})}}),H&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:T,fontSize:f+"px"},onChange:function(t){e.onChangeName(t),X({profileName:t})}}),R&&wp.element.createElement(N,{tagName:"div",className:c()("mpp-profile-text","mt-font-size-"+u),placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),X({profileContent:t})}}))),"latest"===this.state.activeTab&&wp.element.createElement(h,null,this.state.loadingLatestPosts&&wp.element.createElement(h,null,wp.element.createElement("div",null,wp.element.createElement("div",{className:"mpp-spinner"},wp.element.createElement(v,null)))),!this.state.loadingLatestPosts&&wp.element.createElement(h,null,wp.element.createElement("ul",{className:c()("mpp-author-tab-content",this.state.profileLatestPostsOptionsValue)},this.state.latestPosts))))))))}}]),t}(f);t.a=k},function(e,t,r){"use strict";function o(e){var t=new a(e),r=i(a.prototype.request,t);return n.extend(r,a.prototype,t),n.extend(r,t),r}var n=r(0),i=r(4),a=r(16),l=r(1),s=o(l);s.Axios=a,s.create=function(e){return o(n.merge(l,e))},s.Cancel=r(8),s.CancelToken=r(30),s.isCancel=r(7),s.all=function(e){return Promise.all(e)},s.spread=r(31),e.exports=s,e.exports.default=s},function(e,t){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,t,r){"use strict";function o(e){this.defaults=e,this.interceptors={request:new a,response:new a}}var n=r(1),i=r(0),a=r(25),l=r(26);o.prototype.request=function(e){"string"===typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(n,{method:"get"},this.defaults,e),e.method=e.method.toLowerCase();var t=[l,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},i.forEach(["delete","get","head","options"],function(e){o.prototype[e]=function(t,r){return this.request(i.merge(r||{},{method:e,url:t}))}}),i.forEach(["post","put","patch"],function(e){o.prototype[e]=function(t,r,o){return this.request(i.merge(o||{},{method:e,url:t,data:r}))}}),e.exports=o},function(e,t){function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function n(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function i(e){if(u===clearTimeout)return clearTimeout(e);if((u===o||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{return u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}function a(){d&&f&&(d=!1,f.length?h=f.concat(h):g=-1,h.length&&l())}function l(){if(!d){var e=n(a);d=!0;for(var t=h.length;t;){for(f=h,h=[];++g<t;)f&&f[g].run();g=-1,t=h.length}f=null,d=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function p(){}var c,u,m=e.exports={};!function(){try{c="function"===typeof setTimeout?setTimeout:r}catch(e){c=r}try{u="function"===typeof clearTimeout?clearTimeout:o}catch(e){u=o}}();var f,h=[],d=!1,g=-1;m.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new s(e,t)),1!==h.length||d||n(l)},s.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=p,m.addListener=p,m.once=p,m.off=p,m.removeListener=p,m.removeAllListeners=p,m.emit=p,m.prependListener=p,m.prependOnceListener=p,m.listeners=function(e){return[]},m.binding=function(e){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(e){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},function(e,t,r){"use strict";var o=r(0);e.exports=function(e,t){o.forEach(e,function(r,o){o!==t&&o.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[o])})}},function(e,t,r){"use strict";var o=r(6);e.exports=function(e,t,r){var n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(o("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},function(e,t,r){"use strict";e.exports=function(e,t,r,o,n){return e.config=t,r&&(e.code=r),e.request=o,e.response=n,e}},function(e,t,r){"use strict";function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var n=r(0);e.exports=function(e,t,r){if(!t)return e;var i;if(r)i=r(t);else if(n.isURLSearchParams(t))i=t.toString();else{var a=[];n.forEach(t,function(e,t){null!==e&&"undefined"!==typeof e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},function(e,t,r){"use strict";var o=r(0),n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,i,a={};return e?(o.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=o.trim(e.substr(0,i)).toLowerCase(),r=o.trim(e.substr(i+1)),t){if(a[t]&&n.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}}),a):a}},function(e,t,r){"use strict";var o=r(0);e.exports=o.isStandardBrowserEnv()?function(){function e(e){var t=e;return r&&(n.setAttribute("href",t),t=n.href),n.setAttribute("href",t),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}var t,r=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");return t=e(window.location.href),function(r){var n=o.isString(r)?e(r):r;return n.protocol===t.protocol&&n.host===t.host}}():function(){return function(){return!0}}()},function(e,t,r){"use strict";var o=r(0);e.exports=o.isStandardBrowserEnv()?function(){return{write:function(e,t,r,n,i,a){var l=[];l.push(e+"="+encodeURIComponent(t)),o.isNumber(r)&&l.push("expires="+new Date(r).toGMTString()),o.isString(n)&&l.push("path="+n),o.isString(i)&&l.push("domain="+i),!0===a&&l.push("secure"),document.cookie=l.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,r){"use strict";function o(){this.handlers=[]}var n=r(0);o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){n.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},function(e,t,r){"use strict";function o(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var n=r(0),i=r(27),a=r(7),l=r(1),s=r(28),p=r(29);e.exports=function(e){return o(e),e.baseURL&&!s(e.url)&&(e.url=p(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||l.adapter)(e).then(function(t){return o(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return a(t)||(o(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,r){"use strict";var o=r(0);e.exports=function(e,t,r){return o.forEach(r,function(r){e=r(e,t)}),e}},function(e,t,r){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,r){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,r){"use strict";function o(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new n(e),t(r.reason))})}var n=r(8);o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},function(e,t,r){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=r(3),s=r.n(l),p=r(2),c=r.n(p),u=function(){function e(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,r,o){return r&&e(t.prototype,r),o&&e(t,o),t}}(),m=wp.element,f=m.Component,h=m.Fragment,__=wp.i18n.__,d=wp.components,g=d.PanelBody,b=d.Placeholder,w=(d.QueryControls,d.RangeControl),C=d.SelectControl,v=d.Spinner,E=(d.TextControl,d.ToggleControl),_=(d.Toolbar,d.withAPIData,d.ColorPalette,d.Button),y=wp.editor,T=y.InspectorControls,P=y.BlockControls,S=y.MediaUpload,N=y.RichText,x=y.AlignmentToolbar,k=y.PanelColorSettings,A=function(e){function t(){n(this,t);var e=i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.get_users=function(){s.a.post(mpp_gutenberg.rest_url+"/get_users",{},{headers:{"X-WP-Nonce":mpp_gutenberg.nonce}}).then(function(t){var r,n=Array(),i=Array(),a=0,l="",s=0,p="",c="",u="",m="";$.each(t.data,function(e,t){n[t.ID]={profile_pictures:t.profile_pictures,has_profile_picture:t.has_profile_picture,display_name:t.display_name,description:t.description,is_user_logged_in:t.is_user_logged_in,profile_picture_id:t.profile_picture_id,default_image:t.default_image,permalink:t.permalink},t.is_user_logged_in&&(a=t.ID),i.push({value:t.ID,label:t.display_name})}),0!==e.props.attributes.user_id&&(a=e.props.attributes.user_id);var f=n[a];f.has_profile_picture?(l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:f.profile_pictures.thumbnail,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:f.profile_picture_id,p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:f.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",m=f.permalink,c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:f.description):(p=e.props.attributes.profileName.length>0?e.props.attributes.profileName:f.display_name,u=e.props.attributes.profileTitle.length>0?e.props.attributes.profileTitle:"",c=e.props.attributes.profileContent.length>0?e.props.attributes.profileContent:f.description,l=e.props.attributes.profileImgURL.length>0?e.props.attributes.profileImgURL:f.default_image,s=e.props.attributes.profileImgID.length>0?e.props.attributes.profileImgID:0,m=f.permalink),void 0==c&&(c=""),e.setState((r={loading:!1,users:n,active_user:a,user_list:i,profile_picture:l,profile_picture_id:s},o(r,"active_user",a),o(r,"profile_name",p),o(r,"profile_title",u),o(r,"profile_description",c),o(r,"profile_url",m),r)),e.props.setAttributes({profileContent:c,profileName:p,profileTitle:u,profileURL:m,profileImgID:s,profileImgURL:l})})},e.on_user_change=function(t){var r=e.state.users[t],o="",n=0;r.has_profile_picture?(o=e.state.users[t].profile_pictures.thumbnail,n=e.state.users[t].profile_picture_id):(o=mpp_gutenberg.mystery_man,n=0);var i=e.state.users[t].description;void 0===i&&(i=""),e.props.setAttributes({profileName:e.state.users[t].display_name,profileContent:i,profileTitle:"",profileURL:e.state.users[t].permalink,profileImgURL:o}),e.setState({profile_name:e.state.users[t].display_name,profile_description:i,profile_title:"",profile_picture:o,profile_picture_id:n,active_user:t,profile_url:e.state.users[t].permalink})},e.componentDidMount=function(){e.get_users()},e.handleImageChange=function(t,r){e.setState({profile_picture:r,profile_picture_id:t})},e.onChangeName=function(t){e.setState({profile_name:t})},e.onChangeTitle=function(t){e.setState({profile_title:t})},e.onChangeProfileText=function(t){e.setState({profile_description:t})},e.state={loading:!0,users:!1,user_list:!1,profile_picture:!1,profile_picture_id:0,active_user:!1,profile_description:"",profile_name:"",profile_title:""},e}return a(t,e),u(t,[{key:"render",value:function(){var e=this,t=this.props,r=t.attributes,o=r.profileName,n=r.profileTitle,i=r.profileContent,a=r.profileAlignment,l=r.profileImgURL,s=r.profileImgID,p=r.profileURL,u=r.profileFontSize,m=r.profileBackgroundColor,f=r.profileTextColor,d=r.profileAvatarShape,y=r.profileViewPostsBackgroundColor,A=r.profileViewPostsTextColor,I=r.showTitle,L=r.showName,O=r.showDescription,V=r.showViewPosts,H=(t.attributes,t.isSelected,t.editable,t.className,t.setAttributes);this.state.profile_pictures;s=this.state.profile_picture_id,l=this.state.profile_picture,o=this.state.profile_name,i=this.state.profile_description,n=this.state.profile_title,p=this.state.profile_url;var R=function(e){return H({profileBackgroundColor:e})},M=function(e){return H({profileTextColor:e})},B=function(e){return H({profileViewPostsBackgroundColor:e})},U=function(e){return H({profileViewPostsTextColor:e})},D=[{value:"square",label:__("Square","metronet-profile-picture")},{value:"round",label:__("Round","metronet-profile-picture")}];return wp.element.createElement(h,null,this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(b,null,__("Loading...","metronet-profile-picture"),wp.element.createElement(v,null))),!this.state.loading&&wp.element.createElement(h,null,wp.element.createElement(T,null,wp.element.createElement(g,{title:__("User Profile Settings","metronet-profile-picture")},wp.element.createElement(C,{label:__("Select a user","metronet-profile-picture"),value:this.state.active_user,options:this.state.user_list,onChange:function(t){e.on_user_change(t),H({user_id:Number(t)})}}),wp.element.createElement(w,{label:__("Font Size","metronet-profile-picture"),value:u,onChange:function(t){return e.props.setAttributes({profileFontSize:t})},min:14,max:24,step:1}),wp.element.createElement(C,{label:__("Avatar Shape","metronet-profile-picture"),description:__("Choose between a round or square avatar shape.","metronet-profile-picture"),options:D,value:d,onChange:function(t){return e.props.setAttributes({profileAvatarShape:t})}}),wp.element.createElement(k,{title:__("Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:m,onChange:R,label:__("Background Color","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:f,onChange:M,label:__("Text Color","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("View Posts Background Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:y,onChange:B,label:__("View Posts Background","metronet-profile-picture")}]}),wp.element.createElement(k,{title:__("View Posts Text Color","metronet-profile-picture"),initialOpen:!1,colorSettings:[{value:A,onChange:U,label:__("View Posts Text Color","metronet-profile-picture")}]}),wp.element.createElement(E,{label:__("Show Name","metronet-profile-picture"),checked:L,onChange:function(){return e.props.setAttributes({showName:!L})}}),wp.element.createElement(E,{label:__("Show Title","metronet-profile-picture"),checked:I,onChange:function(){return e.props.setAttributes({showTitle:!I})}}),wp.element.createElement(E,{label:__("Show Description","metronet-profile-picture"),checked:O,onChange:function(){return e.props.setAttributes({showDescription:!O})}}),wp.element.createElement(E,{label:__("Show View Posts","metronet-profile-picture"),checked:V,onChange:function(){return e.props.setAttributes({showViewPosts:!V})}}))),wp.element.createElement(P,{key:"controls"},wp.element.createElement(x,{value:a,onChange:function(e){return H({profileAlignment:e})}})),wp.element.createElement("div",{className:c()("mpp-profile-wrap","legacy",a,d,"mt-font-size-"+u,"mpp-block-profile"),style:{backgroundColor:m,color:f}},wp.element.createElement("div",{className:c()("mpp-profile-gutenberg-wrap")},wp.element.createElement("div",{className:"mpp-profile-image-wrapper"},wp.element.createElement("div",{className:"mpp-profile-image-square"},wp.element.createElement(S,{buttonProps:{className:"change-image"},onSelect:function(t){e.handleImageChange(t.id,t.url),H({profileImgID:t.id,profileImgURL:t.url})},type:"image",value:s,render:function(e){var t=e.open;return wp.element.createElement(_,{onClick:t},s?wp.element.createElement("img",{class:"profile-avatar",src:l,alt:"avatar"}):wp.element.createElement("img",{src:l,alt:"placeholder"}))}}))),wp.element.createElement("div",{className:"mpp-content-wrap"},L&&wp.element.createElement(N,{tagName:"h2",placeholder:__("Add name","metronet-profile-picture"),value:o,className:"mpp-profile-name",style:{color:f},onChange:function(t){e.onChangeName(t),H({profileName:t})}}),I&&wp.element.createElement(N,{tagName:"p",placeholder:__("Add title","atomic-blocks"),value:n,className:"mpp-profile-title",style:{color:f},onChange:function(t){e.onChangeTitle(t),H({profileTitle:t})}}),O&&wp.element.createElement(N,{tagName:"div",className:"mpp-profile-text",placeholder:__("Add profile text...","metronet-profile-picture"),value:i,formattingControls:["bold","italic","strikethrough","link"],onChange:function(t){e.onChangeProfileText(t),H({profileContent:t})}}))),p&&!!p.length&&wp.element.createElement("div",{className:"mpp-gutenberg-view-posts"},V&&wp.element.createElement("div",{className:"mpp-profile-view-posts",style:{backgroundColor:y,color:A}},wp.element.createElement("a",{href:p,style:{backgroundColor:y,color:A}},__("View Posts","metronet-profile-picture")))))))}}]),t}(f);t.a=A}]);
gutenberg/class-gutenberg.php CHANGED
@@ -1,5 +1,5 @@
1
- <?php
2
- // Prevent direct file access
3
  if ( ! defined( 'ABSPATH' ) ) {
4
  die( 'No direct access' );
5
  }
@@ -17,6 +17,9 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  * @since 2.0.0
18
  */
19
  class Metronet_Profile_Picture_Gutenberg {
 
 
 
20
  public function __construct() {
21
  if ( ! function_exists( 'register_block_type' ) ) {
22
  return;
@@ -24,10 +27,13 @@ class Metronet_Profile_Picture_Gutenberg {
24
 
25
  add_action( 'init', array( $this, 'register_block' ) );
26
  add_action( 'enqueue_block_assets', array( $this, 'add_gutenberg_styles' ) );
27
- add_action( 'enqueue_block_editor_assets', array( $this,'add_gutenberg_scripts' ) );
28
  add_action( 'admin_footer', array( $this, 'load_gutenblock_svgs' ) );
29
  }
30
 
 
 
 
31
  public function register_block() {
32
  register_block_type(
33
  'mpp/user-profile',
@@ -38,12 +44,12 @@ class Metronet_Profile_Picture_Gutenberg {
38
  register_block_type(
39
  'mpp/user-profile-enhanced',
40
  array(
41
- 'attributes' => array(
42
- 'profileName' => array(
43
  'type' => 'string',
44
  'default' => '',
45
  ),
46
- 'theme' => array(
47
  'type' => 'string',
48
  'default' => 'regular',
49
  ),
@@ -59,7 +65,7 @@ class Metronet_Profile_Picture_Gutenberg {
59
  'type' => 'string',
60
  'default' => __( 'View Posts', 'metronet-profile-picture' ),
61
  ),
62
- 'profileViewWebsite' => array(
63
  'type' => 'string',
64
  'default' => __( 'View Website', 'metronet-profile-picture' ),
65
  ),
@@ -89,7 +95,7 @@ class Metronet_Profile_Picture_Gutenberg {
89
  ),
90
  'borderRounded' => array(
91
  'type' => 'int',
92
- 'default' => 0
93
  ),
94
  'borderColor' => array(
95
  'type' => 'string',
@@ -104,7 +110,7 @@ class Metronet_Profile_Picture_Gutenberg {
104
  'default' => '#32373c',
105
  ),
106
  'profileViewPostsBackgroundColor' => array(
107
- 'type' => 'string',
108
  'default' => '#cf6d38',
109
  ),
110
  'profileViewPostsTextColor' => array(
@@ -279,6 +285,11 @@ class Metronet_Profile_Picture_Gutenberg {
279
  );
280
  }
281
 
 
 
 
 
 
282
  public function display_frontend( $attributes ) {
283
  if ( is_admin() ) {
284
  return;
@@ -322,7 +333,7 @@ class Metronet_Profile_Picture_Gutenberg {
322
  </a>
323
  </div><!-- .mpp-profile-view-posts -->
324
  <?php endif; ?>
325
- <?php if ( '' != $attributes['website'] && $attributes['showWebsite'] ) : ?>
326
  <div class="mpp-profile-view-website" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>;color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>; font-size: <?php echo esc_attr( $attributes['buttonFontSize'] ); ?>px;">
327
  <a href="<?php echo esc_url( $attributes['website'] ); ?>" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>; color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>;">
328
  <?php
@@ -395,7 +406,7 @@ class Metronet_Profile_Picture_Gutenberg {
395
  </div>
396
  <?php endif; /* Compact theme end */ ?>
397
  <?php if ( true === $attributes['showSocialMedia'] && ( 'regular' === $attributes['theme'] || 'compact' === $attributes['theme'] || 'profile' === $attributes['theme'] ) ) : ?>
398
- <?php echo $this->get_social_icons( $attributes ); ?>
399
  <?php endif; ?>
400
  </div><!-- .mpp-profile-gutenberg-wrap -->
401
  </div><!-- .mpp-profile-wrap -->
@@ -430,7 +441,7 @@ class Metronet_Profile_Picture_Gutenberg {
430
  </div><!-- .mpp-author-social-wrapper -->
431
  <?php if ( $attributes['showSocialMedia'] ) : ?>
432
  <div class="mpp-author-social">
433
- <?php echo $this->get_social_icons( $attributes ); ?>
434
  </div>
435
  <?php endif; ?>
436
  </div><!-- .mpp-author-social-wrapper -->
@@ -486,6 +497,11 @@ class Metronet_Profile_Picture_Gutenberg {
486
  return ob_get_clean();
487
  }
488
 
 
 
 
 
 
489
  public function get_social_icons( $attributes ) {
490
  ob_start();
491
  ?>
@@ -542,7 +558,7 @@ class Metronet_Profile_Picture_Gutenberg {
542
  <?php if ( ! empty( $attributes['socialWordPress'] ) ) : ?>
543
  <a href="<?php echo esc_url( $attributes['socialWordPress'] ); ?>">
544
  <svg class="icon icon-wordpress" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
545
- <use href="#wordpress"></use>
546
  </svg>
547
  </a>
548
  <?php endif; ?>
@@ -551,6 +567,9 @@ class Metronet_Profile_Picture_Gutenberg {
551
  return ob_get_clean();
552
  }
553
 
 
 
 
554
  public function load_gutenblock_svgs() {
555
  if ( '' !== get_post_type() ) {
556
  // Define SVG sprite file.
@@ -577,6 +596,9 @@ class Metronet_Profile_Picture_Gutenberg {
577
  }
578
  }
579
 
 
 
 
580
  public function add_gutenberg_scripts() {
581
 
582
  wp_enqueue_script( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( 'dist/blocks.build.js' ), array( 'wp-blocks', 'wp-element' ), METRONET_PROFILE_PICTURE_VERSION, true );
@@ -595,7 +617,7 @@ class Metronet_Profile_Picture_Gutenberg {
595
  wp_script_add_data( 'mpp_gutenberg', 'data', $content );
596
  }
597
 
598
- // Pass in REST URL
599
  wp_localize_script(
600
  'mpp_gutenberg',
601
  'mpp_gutenberg',
@@ -609,11 +631,14 @@ class Metronet_Profile_Picture_Gutenberg {
609
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/dist/blocks.editor.build.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
610
  }
611
 
 
 
 
612
  public function add_gutenberg_styles() {
613
  if ( is_admin() ) {
614
  return;
615
  }
616
- // Ensure script debug allows non-minified scripts
617
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/dist/blocks.style.build.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
618
  wp_enqueue_script( 'mpp_gutenberg_tabs', Metronet_Profile_Picture::get_plugin_url( 'js/mpp-frontend.js' ), array( 'jquery' ), METRONET_PROFILE_PICTURE_VERSION, true );
619
 
1
+ <?php // phpcs:ignore
2
+ // Prevent direct file access.
3
  if ( ! defined( 'ABSPATH' ) ) {
4
  die( 'No direct access' );
5
  }
17
  * @since 2.0.0
18
  */
19
  class Metronet_Profile_Picture_Gutenberg {
20
+ /**
21
+ * Class constructor.
22
+ */
23
  public function __construct() {
24
  if ( ! function_exists( 'register_block_type' ) ) {
25
  return;
27
 
28
  add_action( 'init', array( $this, 'register_block' ) );
29
  add_action( 'enqueue_block_assets', array( $this, 'add_gutenberg_styles' ) );
30
+ add_action( 'enqueue_block_editor_assets', array( $this, 'add_gutenberg_scripts' ) );
31
  add_action( 'admin_footer', array( $this, 'load_gutenblock_svgs' ) );
32
  }
33
 
34
+ /**
35
+ * Register the main User Profile Picture block.
36
+ */
37
  public function register_block() {
38
  register_block_type(
39
  'mpp/user-profile',
44
  register_block_type(
45
  'mpp/user-profile-enhanced',
46
  array(
47
+ 'attributes' => array(
48
+ 'profileName' => array(
49
  'type' => 'string',
50
  'default' => '',
51
  ),
52
+ 'theme' => array(
53
  'type' => 'string',
54
  'default' => 'regular',
55
  ),
65
  'type' => 'string',
66
  'default' => __( 'View Posts', 'metronet-profile-picture' ),
67
  ),
68
+ 'profileViewWebsite' => array(
69
  'type' => 'string',
70
  'default' => __( 'View Website', 'metronet-profile-picture' ),
71
  ),
95
  ),
96
  'borderRounded' => array(
97
  'type' => 'int',
98
+ 'default' => 0,
99
  ),
100
  'borderColor' => array(
101
  'type' => 'string',
110
  'default' => '#32373c',
111
  ),
112
  'profileViewPostsBackgroundColor' => array(
113
+ 'type' => 'string',
114
  'default' => '#cf6d38',
115
  ),
116
  'profileViewPostsTextColor' => array(
285
  );
286
  }
287
 
288
+ /**
289
+ * Display the front-end for the Gutenberg block.
290
+ *
291
+ * @param array $attributes Array of block attributes.
292
+ */
293
  public function display_frontend( $attributes ) {
294
  if ( is_admin() ) {
295
  return;
333
  </a>
334
  </div><!-- .mpp-profile-view-posts -->
335
  <?php endif; ?>
336
+ <?php if ( '' !== $attributes['website'] && $attributes['showWebsite'] ) : ?>
337
  <div class="mpp-profile-view-website" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>;color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>; font-size: <?php echo esc_attr( $attributes['buttonFontSize'] ); ?>px;">
338
  <a href="<?php echo esc_url( $attributes['website'] ); ?>" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>; color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>;">
339
  <?php
406
  </div>
407
  <?php endif; /* Compact theme end */ ?>
408
  <?php if ( true === $attributes['showSocialMedia'] && ( 'regular' === $attributes['theme'] || 'compact' === $attributes['theme'] || 'profile' === $attributes['theme'] ) ) : ?>
409
+ <?php echo $this->get_social_icons( $attributes ); // phpcs:ignore ?>
410
  <?php endif; ?>
411
  </div><!-- .mpp-profile-gutenberg-wrap -->
412
  </div><!-- .mpp-profile-wrap -->
441
  </div><!-- .mpp-author-social-wrapper -->
442
  <?php if ( $attributes['showSocialMedia'] ) : ?>
443
  <div class="mpp-author-social">
444
+ <?php echo $this->get_social_icons( $attributes ); // phpcs:ignore ?>
445
  </div>
446
  <?php endif; ?>
447
  </div><!-- .mpp-author-social-wrapper -->
497
  return ob_get_clean();
498
  }
499
 
500
+ /**
501
+ * Get the social icons for the block.
502
+ *
503
+ * @param array $attributes Gutenberg attributes.
504
+ */
505
  public function get_social_icons( $attributes ) {
506
  ob_start();
507
  ?>
558
  <?php if ( ! empty( $attributes['socialWordPress'] ) ) : ?>
559
  <a href="<?php echo esc_url( $attributes['socialWordPress'] ); ?>">
560
  <svg class="icon icon-wordpress" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
561
+ <use href="#wordpress"></use><?php // phpcs:ignore ?>
562
  </svg>
563
  </a>
564
  <?php endif; ?>
567
  return ob_get_clean();
568
  }
569
 
570
+ /**
571
+ * Add SVGs for the social icons in the block.
572
+ */
573
  public function load_gutenblock_svgs() {
574
  if ( '' !== get_post_type() ) {
575
  // Define SVG sprite file.
596
  }
597
  }
598
 
599
+ /**
600
+ * Add Gutenberg scripts.
601
+ */
602
  public function add_gutenberg_scripts() {
603
 
604
  wp_enqueue_script( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( 'dist/blocks.build.js' ), array( 'wp-blocks', 'wp-element' ), METRONET_PROFILE_PICTURE_VERSION, true );
617
  wp_script_add_data( 'mpp_gutenberg', 'data', $content );
618
  }
619
 
620
+ // Pass in REST URL.
621
  wp_localize_script(
622
  'mpp_gutenberg',
623
  'mpp_gutenberg',
631
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/dist/blocks.editor.build.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
632
  }
633
 
634
+ /**
635
+ * Add Gutenberg styles.
636
+ */
637
  public function add_gutenberg_styles() {
638
  if ( is_admin() ) {
639
  return;
640
  }
641
+ // Ensure script debug allows non-minified scripts.
642
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/dist/blocks.style.build.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
643
  wp_enqueue_script( 'mpp_gutenberg_tabs', Metronet_Profile_Picture::get_plugin_url( 'js/mpp-frontend.js' ), array( 'jquery' ), METRONET_PROFILE_PICTURE_VERSION, true );
644
 
gutenberg/index.php CHANGED
@@ -0,0 +1,2 @@
 
 
1
+ <?php // phpcs:ignore
2
+ // no direct access.
metronet-profile-picture.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: User Profile Picture
4
  Plugin URI: http://wordpress.org/extend/plugins/metronet-profile-picture/
5
  Description: Use the native WP uploader on your user profile page.
6
  Author: Ronald Huereca
7
- Version: 2.3.5
8
  Requires at least: 3.5
9
  Author URI: https://www.mediaron.com
10
  Contributors: ronalfy
@@ -12,7 +12,7 @@ Text Domain: metronet-profile-picture
12
  Domain Path: /languages
13
  */
14
 
15
- define( 'METRONET_PROFILE_PICTURE_VERSION', '2.3.5' );
16
  define( 'METRONET_PROFILE_PICTURE_PLUGIN_NAME', 'User Profile Picture' );
17
  define( 'METRONET_PROFILE_PICTURE_DIR', plugin_dir_path( __FILE__ ) );
18
  define( 'METRONET_PROFILE_PICTURE_URL', plugins_url( '/', __FILE__ ) );
@@ -34,20 +34,40 @@ define( 'METRONET_PROFILE_PICTURE_FILE', __FILE__ );
34
  */
35
  class Metronet_Profile_Picture {
36
 
37
- //private
38
- private $plugin_url = '';
39
- private $plugin_dir = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  private $plugin_path = '';
41
 
42
  /**
43
  * __construct()
44
  *
45
  * Class constructor
46
- *
47
  */
48
  public function __construct() {
49
 
50
- //* Localization Code */
51
  load_plugin_textdomain( 'metronet-profile-picture', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
52
 
53
  $this->plugin_path = plugin_basename( __FILE__ );
@@ -57,40 +77,40 @@ class Metronet_Profile_Picture {
57
  add_action( 'init', array( $this, 'init' ) );
58
  add_action( 'personal_options', array( $this, 'insert_upload_form' ) );
59
 
60
- //Scripts
61
  add_action( 'admin_print_scripts-user-edit.php', array( $this, 'print_media_scripts' ) );
62
  add_action( 'admin_print_scripts-profile.php', array( $this, 'print_media_scripts' ) );
63
 
64
  add_action( 'wp_enqueue_scripts', array( $this, 'profile_print_media_scripts' ), 9 );
65
- add_action( 'acf/input/admin_enqueue_scripts', array( $this, 'profile_print_media_scripts' ), 9 ); //Advanced Custom Field compatibility
66
 
67
- //Styles
68
  add_action( 'admin_print_styles-user-edit.php', array( $this, 'print_media_styles' ) );
69
  add_action( 'admin_print_styles-profile.php', array( $this, 'print_media_styles' ) );
70
 
71
- //Ajax
72
  add_action( 'wp_ajax_metronet_add_thumbnail', array( $this, 'ajax_add_thumbnail' ) );
73
  add_action( 'wp_ajax_metronet_get_thumbnail', array( $this, 'ajax_get_thumbnail' ) );
74
  add_action( 'wp_ajax_metronet_remove_thumbnail', array( $this, 'ajax_remove_thumbnail' ) );
75
 
76
- //User update action
77
  add_action( 'edit_user_profile_update', array( $this, 'save_user_profile' ) );
78
  add_action( 'personal_options_update', array( $this, 'save_user_profile' ) );
79
 
80
- //User Avatar override
81
  add_filter( 'get_avatar', array( $this, 'avatar_override' ), 10, 6 );
82
  add_filter( 'pre_get_avatar_data', array( $this, 'pre_avatar_override' ), 10, 2 );
83
 
84
- //Rest API
85
  add_action( 'rest_api_init', array( $this, 'rest_api_register' ) );
86
 
87
- //Avatar check overridden - Can be overridden using a higher priority
88
  add_filter( 'mpp_hide_avatar_override', '__return_true', 5 );
89
 
90
  // Determine if to load Gutenberg or not.
91
  $options = $this->get_options();
92
  if ( 'on' === $options['load_gutenberg'] ) {
93
- // Include Gutenberg
94
  add_filter( 'block_categories', array( $this, 'add_block_category' ), 10, 2 );
95
  include_once self::get_plugin_dir( '/gutenberg/class-gutenberg.php' );
96
  new Metronet_Profile_Picture_Gutenberg();
@@ -103,8 +123,8 @@ class Metronet_Profile_Picture {
103
  *
104
  * @since 2.3.0
105
  *
106
- * @param array $categories Array of available categories
107
- * @param object $post Post to attach it to
108
  *
109
  * @return array New Categories
110
  */
@@ -125,7 +145,6 @@ class Metronet_Profile_Picture {
125
  * Register the settings menu for User Profile Picture
126
  *
127
  * @since 2.3.0
128
- *
129
  */
130
  public function register_settings_menu() {
131
  $hook = add_menu_page(
@@ -143,15 +162,14 @@ class Metronet_Profile_Picture {
143
  * Admin page for User Profile Picture
144
  *
145
  * @since 2.3.0
146
- *
147
  */
148
  public function admin_page() {
149
  if ( isset( $_POST['submit'] ) && isset( $_POST['options'] ) ) {
150
  check_admin_referer( 'save_mpp_options' );
151
- $this->update_options( $_POST['options'] );
152
  printf( '<div class="updated"><p><strong>%s</strong></p></div>', esc_html__( 'Your options have been saved.', 'metronet-profile-picture' ) );
153
  }
154
- // Get options and defaults
155
  $options = $this->get_options();
156
  ?>
157
  <div class="wrap">
@@ -183,7 +201,6 @@ class Metronet_Profile_Picture {
183
  * @since 2.3.0
184
  *
185
  * @param array $options Array of options.
186
- *
187
  */
188
  do_action( 'mpp_user_profile_admin_settings_after_row', $options );
189
  ?>
@@ -196,7 +213,6 @@ class Metronet_Profile_Picture {
196
  * @since 2.3.0
197
  *
198
  * @param array $options Array of options.
199
- *
200
  */
201
  do_action( 'mpp_user_profile_admin_settings_after_table', $options );
202
  ?>
@@ -211,6 +227,7 @@ class Metronet_Profile_Picture {
211
  *
212
  * @since 2.3.0
213
  *
 
214
  */
215
  public function get_options() {
216
  $options = get_option( 'mpp_options', false );
@@ -229,7 +246,7 @@ class Metronet_Profile_Picture {
229
  *
230
  * @since 2.3.0
231
  * @access public
232
- * @param array $options array of options to save
233
  * @return void
234
  */
235
  public function update_options( $options ) {
@@ -247,7 +264,6 @@ class Metronet_Profile_Picture {
247
  * @since 2.3.0
248
  *
249
  * @param array $options An array of sanitized POST options
250
- *
251
  */
252
  $options = apply_filters( 'mpp_options_sanitized', $options );
253
  update_option( 'mpp_options', $options );
@@ -259,7 +275,6 @@ class Metronet_Profile_Picture {
259
  * @access private
260
  *
261
  * @since 2.3.0
262
- *
263
  */
264
  private function get_defaults() {
265
  $defaults = array(
@@ -272,18 +287,16 @@ class Metronet_Profile_Picture {
272
  * @since 2.3.1
273
  *
274
  * @param array $defaults An array of option defaults.
275
- *
276
  */
277
  $defaults = apply_filters( 'mpp_options_defaults', $defaults );
278
  return $defaults;
279
  }
280
 
281
  /**
282
- * ajax_add_thumbnail()
283
- *
284
- * Adds a thumbnail to user meta and returns thumbnail html
285
- *
286
- */
287
  public function ajax_add_thumbnail() {
288
  if ( ! current_user_can( 'upload_files' ) ) {
289
  die( '' );
@@ -296,9 +309,9 @@ class Metronet_Profile_Picture {
296
  }
297
  check_ajax_referer( "mt-update-post_$post_id" );
298
 
299
- //Save user meta
300
  update_user_option( $user_id, 'metronet_post_id', $post_id );
301
- update_user_option( $user_id, 'metronet_image_id', $thumbnail_id ); //Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data
302
  set_post_thumbnail( $post_id, $thumbnail_id );
303
 
304
  if ( has_post_thumbnail( $post_id ) ) {
@@ -335,10 +348,9 @@ class Metronet_Profile_Picture {
335
  } //end ajax_add_thumbnail
336
 
337
  /**
338
- * ajax_get_thumbnail()
339
  *
340
  * Retrieves a thumbnail based on a passed post id ($_POST)
341
- *
342
  */
343
  public function ajax_get_thumbnail() {
344
  if ( ! current_user_can( 'upload_files' ) ) {
@@ -388,14 +400,13 @@ class Metronet_Profile_Picture {
388
  'logged_in_user_id' => get_current_user_id(),
389
  )
390
  );
391
- } //end ajax_get_thumbnail
392
 
393
  /**
394
- * ajax_remove_thumbnail()
395
- *
396
- * Removes a featured thumbnail
397
- *
398
- */
399
  public function ajax_remove_thumbnail() {
400
  if ( ! current_user_can( 'upload_files' ) ) {
401
  die( '' );
@@ -412,7 +423,7 @@ class Metronet_Profile_Picture {
412
  $thumb_html .= sprintf( '<div id="metronet-click-edit">%s</div>', esc_html__( 'Click to Edit', 'metronet-profile-picture' ) );
413
  $thumb_html .= '</a>';
414
 
415
- //Save user meta and update thumbnail
416
  update_user_option( $user_id, 'metronet_image_id', 0 );
417
  delete_post_meta( $post_id, '_thumbnail_id' );
418
  wp_send_json(
@@ -430,23 +441,26 @@ class Metronet_Profile_Picture {
430
  }
431
 
432
  /**
433
- * avatar_override()
434
  *
435
  * Overrides an avatar with a profile image
436
  *
437
- * @param string $avatar SRC to the avatar
438
- * @param mixed $id_or_email
439
- * @param int $size Size of the image
440
- * @param string $default URL to the default image
441
- * @param string $alt Alternative text
442
- **/
 
 
 
443
  public function avatar_override( $avatar, $id_or_email, $size, $default, $alt, $args = array() ) {
444
  global $pagenow;
445
  if ( 'options-discussion.php' === $pagenow ) {
446
- return $avatar; //Stop overriding gravatars on options-discussion page
447
  }
448
 
449
- //Get user data
450
  if ( is_numeric( $id_or_email ) ) {
451
  $user = get_user_by( 'id', (int) $id_or_email );
452
  } elseif ( is_object( $id_or_email ) ) {
@@ -469,13 +483,13 @@ class Metronet_Profile_Picture {
469
  }
470
  $user_id = $user->ID;
471
 
472
- //Determine if user has an avatar override
473
  $avatar_override = get_user_option( 'metronet_avatar_override', $user_id );
474
  if ( ! $avatar_override || 'on' !== $avatar_override ) {
475
  return $avatar;
476
  }
477
 
478
- //Build classes array based on passed in args, else set defaults - see get_avatar in /wp-includes/pluggable.php
479
  $classes = array(
480
  'avatar',
481
  sprintf( 'avatar-%s', esc_attr( $size ) ),
@@ -490,10 +504,10 @@ class Metronet_Profile_Picture {
490
  }
491
  }
492
 
493
- //Get custom filter classes
494
  $classes = (array) apply_filters( 'mpp_avatar_classes', $classes );
495
 
496
- //Determine if the user has a profile image
497
  $custom_avatar = mt_profile_img(
498
  $user_id,
499
  array(
@@ -510,20 +524,19 @@ class Metronet_Profile_Picture {
510
  return $avatar;
511
  }
512
  return $custom_avatar;
513
- } //end avatar_override
514
 
515
  /**
516
- * pre_avatar_override()
517
- *
518
  * Overrides an avatar with a profile image
519
  *
520
- * @param array $args Arguments to determine the avatar dimensions
521
- * @param mixed $id_or_email
 
522
  * @return array $args Overridden URL or default if none can be found
523
  **/
524
  public function pre_avatar_override( $args, $id_or_email ) {
525
 
526
- //Get user data
527
  if ( is_numeric( $id_or_email ) ) {
528
  $user = get_user_by( 'id', (int) $id_or_email );
529
  } elseif ( is_object( $id_or_email ) ) {
@@ -546,7 +559,7 @@ class Metronet_Profile_Picture {
546
  }
547
  $user_id = $user->ID;
548
 
549
- // Get the post the user is attached to
550
  $size = $args['size'];
551
 
552
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
@@ -555,7 +568,7 @@ class Metronet_Profile_Picture {
555
  }
556
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
557
 
558
- // Attempt to get the image in the right size
559
  $avatar_image = get_the_post_thumbnail_url( $profile_post_id, array( $size, $size ) );
560
  if ( empty( $avatar_image ) ) {
561
  return $args;
@@ -565,11 +578,9 @@ class Metronet_Profile_Picture {
565
  }
566
 
567
  /**
568
- * get_plugin_dir()
569
- *
570
  * Returns an absolute path to a plugin item
571
  *
572
- * @param string $path Relative path to make absolute (e.g., /css/image.png)
573
  *
574
  * @return string An absolute path (e.g., /htdocs/ithemes/wp-content/.../css/image.png)
575
  */
@@ -584,15 +595,13 @@ class Metronet_Profile_Picture {
584
 
585
 
586
  /**
587
- * get_plugin_url()
588
- *
589
- * Returns an absolute url to a plugin item
590
- *
591
- * @param string $path Relative path to plugin (e.g., /css/image.png)
592
- * @return string An absolute url (e.g., http://www.domain.com/plugin_url/.../css/image.png)
593
- */
594
  public static function get_plugin_url( $path = '' ) {
595
- $dir = rtrim( plugin_dir_url( __FILE__ ), '/' );
596
  if ( ! empty( $path ) && is_string( $path ) ) {
597
  $dir .= '/' . ltrim( $path, '/' );
598
  }
@@ -600,18 +609,16 @@ class Metronet_Profile_Picture {
600
  }
601
 
602
  /**
603
- * get_post_id
604
- *
605
  * Gets a post id for the user - Creates a post if a post doesn't exist
606
  *
607
- * @param int user_id User ID of the user
608
  * @return int post_id
609
- */
610
  private function get_post_id( $user_id = 0 ) {
611
 
612
  $user = get_user_by( 'id', $user_id );
613
 
614
- //Get/Create Profile Picture Post
615
  $post_args = array(
616
  'post_type' => 'mt_pp',
617
  'author' => $user_id,
@@ -632,22 +639,20 @@ class Metronet_Profile_Picture {
632
  $post_id = $post->ID;
633
  }
634
  return $post_id;
635
- } //end get_post_id
636
 
637
  /**
638
- * get_post_thumbnail_editor_link
639
- *
640
  * Retrieve a crop-image link (HTML) based on the passed post_id
641
  *
642
- * @param int post_id Post ID to find the featured image for
643
  * @return string html
644
- */
645
  private function get_post_thumbnail_editor_link( $post_id ) {
646
  ob_start();
647
  if ( has_post_thumbnail( $post_id ) && defined( 'PTE_VERSION' ) ) {
648
- //Post Thumbnail Editor compatibility - http://wordpress.org/extend/plugins/post-thumbnail-editor/
649
  $post_thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
650
- $pte_url = add_query_arg(
651
  array(
652
  'page' => 'pte-edit',
653
  'pte-id' => $post_thumbnail_id,
@@ -655,42 +660,36 @@ class Metronet_Profile_Picture {
655
  admin_url( 'upload.php' )
656
  );
657
  printf( ' - <a href="%s">%s</a>', esc_url( $pte_url ), esc_html__( 'Crop Thumbnail', 'metronet-profile-picture' ) );
658
- } //end post thumbnail editor
659
  return ob_get_clean();
660
- } //end get_post_thumbnail_editor_link
661
 
662
  /**
663
- * get_user_id
664
- *
665
- * Gets a user ID for the user
666
- *
667
- *@return int user_id
668
  *
 
669
  */
670
  public function get_user_id() {
671
- //Get user ID
672
  $user_id = isset( $_GET['user_id'] ) ? absint( $_GET['user_id'] ) : 0; // phpcs:ignore
673
  if ( 0 === $user_id && IS_PROFILE_PAGE ) {
674
  $current_user = wp_get_current_user();
675
  $user_id = $current_user->ID;
676
  }
677
  return $user_id;
678
- } //end get_user_id
679
 
680
  /**
681
- * init()
682
- *
683
  * Initializes plugin localization, post types, updaters, plugin info, and adds actions/filters
684
- *
685
  */
686
  public function init() {
687
 
688
- // For the admin interface
689
  add_action( 'admin_menu', array( $this, 'register_settings_menu' ) );
690
  add_action( 'plugin_action_links_' . METRONET_PROFILE_PICTURE_SLUG, array( $this, 'plugin_settings_link' ) );
691
 
692
- add_theme_support( 'post-thumbnails' ); //This should be part of the theme, but the plugin registers it just in case.
693
- //Register post types
694
  $post_type_args = array(
695
  'public' => false,
696
  'publicly_queryable' => false,
@@ -727,8 +726,7 @@ class Metronet_Profile_Picture {
727
  add_image_size( 'profile_150', 150, 150, true );
728
  add_image_size( 'profile_300', 300, 300, true );
729
  }
730
-
731
- }//end function init
732
 
733
  /**
734
  * Adds a plugin settings link.
@@ -737,9 +735,10 @@ class Metronet_Profile_Picture {
737
  *
738
  * @param array $settings The settings array for the plugin.
739
  *
 
740
  */
741
  public function plugin_settings_link( $settings ) {
742
- $admin_anchor = sprintf(
743
  '<a href="%s">%s</a>',
744
  esc_url( admin_url( 'admin.php?page=mpp' ) ),
745
  esc_html__( 'Settings', 'metronet-profile-picture' )
@@ -759,13 +758,11 @@ class Metronet_Profile_Picture {
759
  }
760
 
761
  /**
762
- * insert_upload_form
763
- *
764
  * Adds an upload form to the user profile page and outputs profile image if there is one
765
  */
766
  public function insert_upload_form() {
767
  if ( ! current_user_can( 'upload_files' ) ) {
768
- return; //Users must be author or greater
769
  }
770
 
771
  $user_id = $this->get_user_id();
@@ -808,16 +805,16 @@ class Metronet_Profile_Picture {
808
  <div id="metronet-override-avatar">
809
  <input type="hidden" name="metronet-user-avatar" value="off" />
810
  <?php
811
- //Get the user avatar override option - If not set, see if there's a filter override.
812
  $user_avatar_override = get_user_option( 'metronet_avatar_override', $user_id );
813
- $checked = '';
814
  if ( $user_avatar_override ) {
815
  $checked = checked( 'on', $user_avatar_override, false );
816
  } else {
817
  $checked = checked( true, apply_filters( 'mpp_avatar_override', false ), false );
818
  }
819
 
820
- //Filter for hiding the override interface. If this option is set to true, the mpp_avatar_override filter is ignored and override is enabled by default
821
  $hide_override = apply_filters( 'mpp_hide_avatar_override', false );
822
  if ( $hide_override ) :
823
  ?>
@@ -835,14 +832,11 @@ class Metronet_Profile_Picture {
835
  * Allow other plugins to run code after the user profile picture UI.
836
  *
837
  * @since 2.3.0
838
- *
839
  */
840
  do_action( 'mpp_user_profile_form', $user_id );
841
  } //end insert_upload_form
842
 
843
  /**
844
- * profile_print_media_scripts
845
- *
846
  * Output media scripts for thickbox and media uploader
847
  **/
848
  public function profile_print_media_scripts() {
@@ -852,8 +846,6 @@ class Metronet_Profile_Picture {
852
  }
853
 
854
  /**
855
- * print_media_scripts
856
- *
857
  * Output media scripts for thickbox and media uploader
858
  **/
859
  public function print_media_scripts() {
@@ -933,12 +925,13 @@ class Metronet_Profile_Picture {
933
  <?php
934
  } //end print_media_scripts
935
 
 
 
 
936
  public function print_media_styles() {
937
  } //end print_media_styles
938
 
939
  /**
940
- * rest_get_users_permissions_callback()
941
- *
942
  * Gets permissions for the get users rest api endpoint.
943
  *
944
  * @return bool true if the user has permission, false if not
@@ -948,10 +941,8 @@ class Metronet_Profile_Picture {
948
  }
949
 
950
  /**
951
- * rest_api_register()
952
- *
953
- * Registers REST API endpoint
954
- **/
955
  public function rest_api_register() {
956
  register_rest_field(
957
  'user',
@@ -994,7 +985,7 @@ class Metronet_Profile_Picture {
994
  'permission_callback' => array( $this, 'rest_get_users_permissions_callback' ),
995
  )
996
  );
997
- // keep it for backward compatibility
998
  register_rest_route(
999
  'mpp/v1',
1000
  '/user/(?P<id>\d+)',
@@ -1012,11 +1003,11 @@ class Metronet_Profile_Picture {
1012
  }
1013
 
1014
  /**
1015
- * rest_api_get_users()
1016
- *
1017
  * Gets users for the Gutenberg block
1018
  *
1019
- * @param array $request WP REST API array
 
 
1020
  **/
1021
  public function rest_api_get_users( $request ) {
1022
 
@@ -1037,8 +1028,8 @@ class Metronet_Profile_Picture {
1037
  $user_results = $user_query->get_results();
1038
  $return = array();
1039
  foreach ( $user_results as $result ) {
1040
- //Get attachment ID
1041
- $profile_post_id = absint( get_user_option( 'metronet_post_id', $result->data->ID ) );
1042
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1043
  if ( ! $post_thumbnail_id ) {
1044
  $result->data->has_profile_picture = false;
@@ -1047,17 +1038,17 @@ class Metronet_Profile_Picture {
1047
  $result->data->profile_pictures = array(
1048
  'avatar' => get_avatar( $result->data->ID ),
1049
  );
1050
- $result->data->is_user_logged_in = ( get_current_user_id() == $result->data->ID ) ? true : false;
1051
  $return[ $result->data->ID ] = $result->data;
1052
  continue;
1053
  }
1054
  $result->data->description = get_user_meta( $result->data->ID, 'description', true );
1055
  $result->data->display_name = $result->data->display_name;
1056
  $result->data->has_profile_picture = true;
1057
- $result->data->is_user_logged_in = ( get_current_user_id() == $result->data->ID ) ? true : false;
1058
  $result->data->description = get_user_meta( $result->data->ID, 'description', true );
1059
 
1060
- //Get attachment URL
1061
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1062
 
1063
  $result->data->profile_picture_id = $post_thumbnail_id;
@@ -1079,13 +1070,11 @@ class Metronet_Profile_Picture {
1079
  }
1080
 
1081
  /**
1082
- * rest_api_change_profile_image()
1083
- *
1084
  * Changes a profile image for a user.
1085
  *
1086
- * @param array $request WP REST API array
1087
  *
1088
- * @return json image URLs matched to sizes
1089
  **/
1090
  public function rest_api_change_profile_image( $request ) {
1091
 
@@ -1102,9 +1091,9 @@ class Metronet_Profile_Picture {
1102
 
1103
  $post_id = $this->get_post_id( $user_id );
1104
 
1105
- //Save user meta
1106
  update_user_option( $user_id, 'metronet_post_id', $post_id );
1107
- update_user_option( $user_id, 'metronet_image_id', $media_id ); //Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data
1108
 
1109
  set_post_thumbnail( $post_id, $media_id );
1110
 
@@ -1122,13 +1111,11 @@ class Metronet_Profile_Picture {
1122
  }
1123
 
1124
  /**
1125
- * rest_api_put_profile()
1126
- *
1127
  * Adds a profile picture to a user
1128
  *
1129
- * @param array $request WP REST API array
1130
  *
1131
- * @return json image URLs matched to sizes
1132
  **/
1133
  public function rest_api_put_profile( $request ) {
1134
 
@@ -1150,9 +1137,9 @@ class Metronet_Profile_Picture {
1150
  }
1151
 
1152
  $post_id = $this->get_post_id( $user_id );
1153
- //Save user meta
1154
  update_user_option( $user_id, 'metronet_post_id', $post_id );
1155
- update_user_option( $user_id, 'metronet_image_id', $media_id ); //Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data
1156
 
1157
  set_post_thumbnail( $post_id, $media_id );
1158
 
@@ -1170,9 +1157,9 @@ class Metronet_Profile_Picture {
1170
  }
1171
 
1172
  /**
1173
- * rest_api_get_posts_for_user()
1174
- *
1175
  * Returns the 5 most recent posts for the user
 
 
1176
  **/
1177
  public function rest_api_get_posts_for_user( $request ) {
1178
  $user_id = absint( $request['user_id'] );
@@ -1197,10 +1184,12 @@ class Metronet_Profile_Picture {
1197
  wp_send_json( $posts );
1198
  }
1199
  /**
1200
- * rest_api_get_profile()
1201
- *
1202
- * Returns an attachment image ID and profile image if available
1203
- **/
 
 
1204
  public function rest_api_get_profile_for_user( $object, $field_name, $request ) {
1205
  $user_id = $object['id'];
1206
  $user = get_user_by( 'id', $user_id );
@@ -1208,16 +1197,16 @@ class Metronet_Profile_Picture {
1208
  return new WP_Error( 'mpp_no_user', __( 'User not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1209
  }
1210
 
1211
- // No capability check here because we're just returning user profile data
1212
 
1213
- //Get attachment ID
1214
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1215
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1216
  if ( ! $post_thumbnail_id ) {
1217
  return new WP_Error( 'mpp_no_profile_picture', __( 'Profile picture not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1218
  }
1219
 
1220
- //Get attachment URL
1221
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1222
 
1223
  return array(
@@ -1231,11 +1220,9 @@ class Metronet_Profile_Picture {
1231
  }
1232
 
1233
  /**
1234
- * rest_api_get_profile()
1235
- *
1236
  * Returns a profile for the user
1237
  *
1238
- * @param array $data WP REST API array
1239
  *
1240
  * @return json image URLs matched to sizes
1241
  **/
@@ -1246,14 +1233,14 @@ class Metronet_Profile_Picture {
1246
  return new WP_Error( 'mpp_no_user', __( 'User not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1247
  }
1248
 
1249
- //Get attachment ID
1250
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1251
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1252
  if ( ! $post_thumbnail_id ) {
1253
  return new WP_Error( 'mpp_no_profile_picture', __( 'Profile picture not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1254
  }
1255
 
1256
- //Get attachment URL
1257
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1258
 
1259
  return array(
@@ -1263,28 +1250,35 @@ class Metronet_Profile_Picture {
1263
  }
1264
 
1265
  /**
1266
- * rest_api_validate()
1267
- *
1268
  * Makes sure the ID we are passed is numeric
 
 
 
 
 
 
1269
  **/
1270
  public function rest_api_validate( $param, $request, $key ) {
1271
  return is_numeric( $param );
1272
  }
1273
 
1274
  /**
1275
- * rest_api_validate()
1276
- *
1277
  * Sanitizes user ID
 
 
 
 
 
 
1278
  **/
1279
  public function rest_api_sanitize( $param, $request, $key ) {
1280
  return absint( $param );
1281
  }
1282
 
1283
  /**
1284
- * save_user_profile()
1285
- *
1286
  * Saves user profile fields
1287
- * @param int $user_id
 
1288
  **/
1289
  public function save_user_profile( $user_id ) {
1290
  if ( ! isset( $_POST['metronet-user-avatar'] ) ) {
@@ -1294,7 +1288,7 @@ class Metronet_Profile_Picture {
1294
 
1295
  flush_rewrite_rules( true );
1296
 
1297
- $user_avatar = $_POST['metronet-user-avatar'];
1298
  if ( 'on' === $user_avatar ) {
1299
  update_user_option( $user_id, 'metronet_avatar_override', 'on' );
1300
  } else {
@@ -1302,29 +1296,32 @@ class Metronet_Profile_Picture {
1302
  }
1303
  } //end save_user_profile
1304
 
1305
- } //end class
1306
- //instantiate the class
 
1307
  global $mt_pp;
1308
  if ( class_exists( 'Metronet_Profile_Picture' ) ) {
1309
  if ( get_bloginfo( 'version' ) >= '3.5' ) {
1310
  add_action( 'plugins_loaded', 'mt_mpp_instantiate', 10 );
1311
  }
1312
  }
 
 
 
 
1313
  function mt_mpp_instantiate() {
1314
  global $mt_pp;
1315
  $mt_pp = new Metronet_Profile_Picture();
1316
  }
1317
  /**
1318
- * mt_profile_img
1319
- *
1320
- * Adds a profile image
1321
  *
1322
- * @param $user_id INT - The user ID for the user to retrieve the image for
1323
- * @param $args mixed
1324
- * size - string || array (see get_the_post_thumbnail)
1325
- * attr - string || array (see get_the_post_thumbnail)
1326
- * echo - bool (true or false) - whether to echo the image or return it
1327
- */
1328
  function mt_profile_img( $user_id, $args = array() ) {
1329
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1330
 
@@ -1338,11 +1335,11 @@ function mt_profile_img( $user_id, $args = array() ) {
1338
  'echo' => true,
1339
  );
1340
  $args = wp_parse_args( $args, $defaults );
1341
- extract( $args ); //todo - get rid of evil extract
1342
 
1343
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1344
 
1345
- //Return false or echo nothing if there is no post thumbnail
1346
  if ( ! $post_thumbnail_id ) {
1347
  if ( $echo ) {
1348
  echo '';
@@ -1352,7 +1349,7 @@ function mt_profile_img( $user_id, $args = array() ) {
1352
  return;
1353
  }
1354
 
1355
- //Implode Classes if set and array - dev note: edge case
1356
  if ( is_array( $attr ) && isset( $attr['class'] ) ) {
1357
  if ( is_array( $attr['class'] ) ) {
1358
  $attr['class'] = implode( ' ', $attr['class'] );
@@ -1366,11 +1363,10 @@ function mt_profile_img( $user_id, $args = array() ) {
1366
  *
1367
  * Filter outputted HTML.
1368
  *
1369
- * @param string $post_thumbnail img tag with formed HTML
1370
- * @param int $profile_post_id The profile in which the image is attached
1371
- * @param int $profile_thumbnail_id The thumbnail ID for the attached image
1372
- * @param int $user_id The user id for which the image is attached
1373
- *
1374
  */
1375
  $post_thumbnail = apply_filters( 'mpp_thumbnail_html', $post_thumbnail, $profile_post_id, $post_thumbnail_id, $user_id );
1376
  if ( $echo ) {
@@ -1381,25 +1377,22 @@ function mt_profile_img( $user_id, $args = array() ) {
1381
  } //end mt_profile_img
1382
 
1383
  /**
1384
- * mt_author_box
1385
- *
1386
  * Adds a profile author box
1387
  *
1388
  * @since 2.2.0
1389
  *
1390
- * @param int $user_id INT - The user ID for the user to retrieve the profile for
1391
- * @param array $attributes See defaults in function for all attributes
1392
  *
1393
  * @return string User profile box if user exists
1394
- *
1395
- */
1396
  function mt_author_box( $user_id = 0, $attributes = array() ) {
1397
  $user = get_user_by( 'id', $user_id );
1398
  if ( false === $user ) {
1399
  return '';
1400
  }
1401
  $defaults = array(
1402
- 'theme' => 'regular', /* can be 'regular', 'compact', 'profie', or 'tabbed' */
1403
  'profileAvatarShape' => 'square', /* Can be 'square' or 'rounded' */
1404
  'padding' => 10,
1405
  'border' => 1,
@@ -1441,7 +1434,7 @@ function mt_author_box( $user_id = 0, $attributes = array() ) {
1441
  'socialGitHub' => '',
1442
  'socialMediaOptions' => 'brand', /* can be brand or custom */
1443
  'socialMediaColors' => '#000000', /* Only applicable if socialMediaOptions is custom */
1444
- 'profileCompactAlignment' => 'center', /* Can be left, center, or right */
1445
  /* Tabbed Attributes */
1446
  'tabbedAuthorProfileTitle' => '',
1447
  'tabbedAuthorSubHeading' => '',
@@ -1487,9 +1480,9 @@ function mt_author_box( $user_id = 0, $attributes = array() ) {
1487
  <?php esc_html_e( 'View Posts', 'metronet-profile-picture' ); ?></a>
1488
  </div><!-- .mpp-profile-view-posts -->
1489
  <?php endif; ?>
1490
- <?php if ( '' != $attributes['website'] && $attributes['showWebsite'] ) : ?>
1491
  <div class="mpp-profile-view-website" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>;color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>; font-size: <?php echo esc_attr( $attributes['buttonFontSize'] ); ?>px;">
1492
- <a href="<?php echo esc_url( $attributes['website'] ) ; ?>" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>; color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>;"><?php esc_html_e( 'View Website', 'metronet-profile-picture' ); ?></a>
1493
  </div><!-- .mpp-profile-view-website -->
1494
  <?php endif; ?>
1495
  </div><!-- .mpp-gutenberg-view-posts -->
@@ -1552,7 +1545,7 @@ function mt_author_box( $user_id = 0, $attributes = array() ) {
1552
  </div>
1553
  <?php endif; /* Compact theme end */ ?>
1554
  <?php if ( true === $attributes['showSocialMedia'] && ( 'regular' === $attributes['theme'] || 'compact' === $attributes['theme'] || 'profile' === $attributes['theme'] ) ) : ?>
1555
- <?php echo mpp_get_social_icons( $attributes ); ?>
1556
  <?php endif; ?>
1557
  </div><!-- .mpp-profile-gutenberg-wrap -->
1558
  </div><!-- .mpp-profile-wrap -->
@@ -1587,7 +1580,7 @@ function mt_author_box( $user_id = 0, $attributes = array() ) {
1587
  </div><!-- .mpp-author-social-wrapper -->
1588
  <?php if ( $attributes['showSocialMedia'] ) : ?>
1589
  <div class="mpp-author-social">
1590
- <?php echo mpp_get_social_icons( $attributes ); ?>
1591
  </div>
1592
  <?php endif; ?>
1593
  </div><!-- .mpp-author-social-wrapper -->
@@ -1641,22 +1634,19 @@ function mt_author_box( $user_id = 0, $attributes = array() ) {
1641
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/css/front-end-gutenberg.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
1642
  wp_enqueue_script( 'mpp_gutenberg_tabs', Metronet_Profile_Picture::get_plugin_url( 'js/mpp-frontend' . $min_or_not . '.js' ), array( 'jquery' ), METRONET_PROFILE_PICTURE_VERSION, true );
1643
  add_action( 'wp_footer', 'mpp_load_gutenblock_svgs' );
1644
- echo ob_get_clean();
1645
  }
1646
  /**
1647
- * mpp_get_social_icons
1648
- *
1649
  * Get social icons based on passed attributes
1650
  *
1651
  * @see mt_author_box for attribute valies
1652
  *
1653
  * @since 2.2.0
1654
  *
1655
- * @param array $attributes See defaults in function mt_author_box for all attributes
1656
  *
1657
  * @return string User social icons
1658
- *
1659
- */
1660
  function mpp_get_social_icons( $attributes ) {
1661
  ob_start();
1662
  ?>
@@ -1675,7 +1665,7 @@ function mpp_get_social_icons( $attributes ) {
1675
  </svg>
1676
  </a>
1677
  <?php endif; ?>
1678
- <?php if ( !empty( $attributes['socialInstagram'] ) ) : ?>
1679
  <a href="<?php echo esc_url( $attributes['socialInstagram'] ); ?>">
1680
  <svg class="icon icon-instagram" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1681
  <use href="#instagram"></use>
@@ -1703,7 +1693,7 @@ function mpp_get_social_icons( $attributes ) {
1703
  </svg>
1704
  </a>
1705
  <?php endif; ?>
1706
- <?php if( ! empty( $attributes['socialGitHub'] ) ) : ?>
1707
  <a href="<?php echo esc_url( $attributes['socialGitHub'] ); ?>">
1708
  <svg class="icon icon-github" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1709
  <use href="#github"></use>
@@ -1713,7 +1703,7 @@ function mpp_get_social_icons( $attributes ) {
1713
  <?php if ( ! empty( $attributes['socialWordPress'] ) ) : ?>
1714
  <a href="<?php echo esc_url( $attributes['socialWordPress'] ); ?>">
1715
  <svg class="icon icon-wordpress" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1716
- <use href="#wordpress"></use>
1717
  </svg>
1718
  </a>
1719
  <?php endif; ?>
@@ -1722,21 +1712,15 @@ function mpp_get_social_icons( $attributes ) {
1722
  return ob_get_clean();
1723
  }
1724
  /**
1725
- * mpp_load_gutenblock_svgs
1726
- *
1727
  * Load social icons in footer of theme
1728
  *
1729
  * @since 2.2.0
1730
- *
1731
- * @return html Echo sprite for social icons
1732
- *
1733
- */
1734
  function mpp_load_gutenblock_svgs() {
1735
  /**
1736
  * Allow other plugins to run code from inside this SVG block.
1737
  *
1738
  * @since 2.3.0
1739
- *
1740
  */
1741
  do_action( 'mpp_svg_start' );
1742
  if ( '' !== get_post_type() ) {
@@ -1766,7 +1750,6 @@ function mpp_load_gutenblock_svgs() {
1766
  * Allow other plugins to run code from inside this SVG block at the end.
1767
  *
1768
  * @since 2.3.0
1769
- *
1770
  */
1771
  do_action( 'mpp_svg_end' );
1772
  }
4
  Plugin URI: http://wordpress.org/extend/plugins/metronet-profile-picture/
5
  Description: Use the native WP uploader on your user profile page.
6
  Author: Ronald Huereca
7
+ Version: 2.3.6
8
  Requires at least: 3.5
9
  Author URI: https://www.mediaron.com
10
  Contributors: ronalfy
12
  Domain Path: /languages
13
  */
14
 
15
+ define( 'METRONET_PROFILE_PICTURE_VERSION', '2.3.6' );
16
  define( 'METRONET_PROFILE_PICTURE_PLUGIN_NAME', 'User Profile Picture' );
17
  define( 'METRONET_PROFILE_PICTURE_DIR', plugin_dir_path( __FILE__ ) );
18
  define( 'METRONET_PROFILE_PICTURE_URL', plugins_url( '/', __FILE__ ) );
34
  */
35
  class Metronet_Profile_Picture {
36
 
37
+ /**
38
+ * Defines the plugin URL
39
+ *
40
+ * @since 1.0.0
41
+ * @access private
42
+ * @var string $plugin_url
43
+ */
44
+ private $plugin_url = '';
45
+
46
+ /**
47
+ * Defines the plugin absolute directory
48
+ *
49
+ * @since 1.0.0
50
+ * @access private
51
+ * @var string $plugin_dir
52
+ */
53
+ private $plugin_dir = '';
54
+
55
+ /**
56
+ * Defines the plugin path
57
+ *
58
+ * @since 1.0.0
59
+ * @access private
60
+ * @var string $plugin_path
61
+ */
62
  private $plugin_path = '';
63
 
64
  /**
65
  * __construct()
66
  *
67
  * Class constructor
 
68
  */
69
  public function __construct() {
70
 
 
71
  load_plugin_textdomain( 'metronet-profile-picture', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
72
 
73
  $this->plugin_path = plugin_basename( __FILE__ );
77
  add_action( 'init', array( $this, 'init' ) );
78
  add_action( 'personal_options', array( $this, 'insert_upload_form' ) );
79
 
80
+ // Scripts.
81
  add_action( 'admin_print_scripts-user-edit.php', array( $this, 'print_media_scripts' ) );
82
  add_action( 'admin_print_scripts-profile.php', array( $this, 'print_media_scripts' ) );
83
 
84
  add_action( 'wp_enqueue_scripts', array( $this, 'profile_print_media_scripts' ), 9 );
85
+ add_action( 'acf/input/admin_enqueue_scripts', array( $this, 'profile_print_media_scripts' ), 9 ); // Advanced Custom Field compatibility.
86
 
87
+ // Styles.
88
  add_action( 'admin_print_styles-user-edit.php', array( $this, 'print_media_styles' ) );
89
  add_action( 'admin_print_styles-profile.php', array( $this, 'print_media_styles' ) );
90
 
91
+ // Ajax.
92
  add_action( 'wp_ajax_metronet_add_thumbnail', array( $this, 'ajax_add_thumbnail' ) );
93
  add_action( 'wp_ajax_metronet_get_thumbnail', array( $this, 'ajax_get_thumbnail' ) );
94
  add_action( 'wp_ajax_metronet_remove_thumbnail', array( $this, 'ajax_remove_thumbnail' ) );
95
 
96
+ // User update action.
97
  add_action( 'edit_user_profile_update', array( $this, 'save_user_profile' ) );
98
  add_action( 'personal_options_update', array( $this, 'save_user_profile' ) );
99
 
100
+ // User Avatar override.
101
  add_filter( 'get_avatar', array( $this, 'avatar_override' ), 10, 6 );
102
  add_filter( 'pre_get_avatar_data', array( $this, 'pre_avatar_override' ), 10, 2 );
103
 
104
+ // Rest API.
105
  add_action( 'rest_api_init', array( $this, 'rest_api_register' ) );
106
 
107
+ // Avatar check overridden - Can be overridden using a higher priority.
108
  add_filter( 'mpp_hide_avatar_override', '__return_true', 5 );
109
 
110
  // Determine if to load Gutenberg or not.
111
  $options = $this->get_options();
112
  if ( 'on' === $options['load_gutenberg'] ) {
113
+ // Include Gutenberg.
114
  add_filter( 'block_categories', array( $this, 'add_block_category' ), 10, 2 );
115
  include_once self::get_plugin_dir( '/gutenberg/class-gutenberg.php' );
116
  new Metronet_Profile_Picture_Gutenberg();
123
  *
124
  * @since 2.3.0
125
  *
126
+ * @param array $categories Array of available categories.
127
+ * @param object $post Post to attach it to.
128
  *
129
  * @return array New Categories
130
  */
145
  * Register the settings menu for User Profile Picture
146
  *
147
  * @since 2.3.0
 
148
  */
149
  public function register_settings_menu() {
150
  $hook = add_menu_page(
162
  * Admin page for User Profile Picture
163
  *
164
  * @since 2.3.0
 
165
  */
166
  public function admin_page() {
167
  if ( isset( $_POST['submit'] ) && isset( $_POST['options'] ) ) {
168
  check_admin_referer( 'save_mpp_options' );
169
+ $this->update_options( wp_unslash( filter_input( INPUT_POST, 'options' ) ) );
170
  printf( '<div class="updated"><p><strong>%s</strong></p></div>', esc_html__( 'Your options have been saved.', 'metronet-profile-picture' ) );
171
  }
172
+ // Get options and defaults.
173
  $options = $this->get_options();
174
  ?>
175
  <div class="wrap">
201
  * @since 2.3.0
202
  *
203
  * @param array $options Array of options.
 
204
  */
205
  do_action( 'mpp_user_profile_admin_settings_after_row', $options );
206
  ?>
213
  * @since 2.3.0
214
  *
215
  * @param array $options Array of options.
 
216
  */
217
  do_action( 'mpp_user_profile_admin_settings_after_table', $options );
218
  ?>
227
  *
228
  * @since 2.3.0
229
  *
230
+ * @return array $options Array of admin options.
231
  */
232
  public function get_options() {
233
  $options = get_option( 'mpp_options', false );
246
  *
247
  * @since 2.3.0
248
  * @access public
249
+ * @param array $options array of options to save.
250
  * @return void
251
  */
252
  public function update_options( $options ) {
264
  * @since 2.3.0
265
  *
266
  * @param array $options An array of sanitized POST options
 
267
  */
268
  $options = apply_filters( 'mpp_options_sanitized', $options );
269
  update_option( 'mpp_options', $options );
275
  * @access private
276
  *
277
  * @since 2.3.0
 
278
  */
279
  private function get_defaults() {
280
  $defaults = array(
287
  * @since 2.3.1
288
  *
289
  * @param array $defaults An array of option defaults.
 
290
  */
291
  $defaults = apply_filters( 'mpp_options_defaults', $defaults );
292
  return $defaults;
293
  }
294
 
295
  /**
296
+ * Add a thumbnail via Ajax.
297
+ *
298
+ * Adds a thumbnail to user meta and returns thumbnail html.
299
+ */
 
300
  public function ajax_add_thumbnail() {
301
  if ( ! current_user_can( 'upload_files' ) ) {
302
  die( '' );
309
  }
310
  check_ajax_referer( "mt-update-post_$post_id" );
311
 
312
+ // Save user meta.
313
  update_user_option( $user_id, 'metronet_post_id', $post_id );
314
+ update_user_option( $user_id, 'metronet_image_id', $thumbnail_id ); // Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data.
315
  set_post_thumbnail( $post_id, $thumbnail_id );
316
 
317
  if ( has_post_thumbnail( $post_id ) ) {
348
  } //end ajax_add_thumbnail
349
 
350
  /**
351
+ * Retrieve a thumbnail via Ajax.
352
  *
353
  * Retrieves a thumbnail based on a passed post id ($_POST)
 
354
  */
355
  public function ajax_get_thumbnail() {
356
  if ( ! current_user_can( 'upload_files' ) ) {
400
  'logged_in_user_id' => get_current_user_id(),
401
  )
402
  );
403
+ }
404
 
405
  /**
406
+ * Remove a thumbnail via Ajax.
407
+ *
408
+ * Removes a featured thumbnail.
409
+ */
 
410
  public function ajax_remove_thumbnail() {
411
  if ( ! current_user_can( 'upload_files' ) ) {
412
  die( '' );
423
  $thumb_html .= sprintf( '<div id="metronet-click-edit">%s</div>', esc_html__( 'Click to Edit', 'metronet-profile-picture' ) );
424
  $thumb_html .= '</a>';
425
 
426
+ // Save user meta and update thumbnail.
427
  update_user_option( $user_id, 'metronet_image_id', 0 );
428
  delete_post_meta( $post_id, '_thumbnail_id' );
429
  wp_send_json(
441
  }
442
 
443
  /**
444
+ * Override an Avatar with a User Profile Picture.
445
  *
446
  * Overrides an avatar with a profile image
447
  *
448
+ * @param string $avatar SRC to the avatar.
449
+ * @param mixed $id_or_email The ID or email address.
450
+ * @param int $size Size of the image.
451
+ * @param string $default URL to the default image.
452
+ * @param string $alt Alternative text.
453
+ * @param array $args Misc. args for the avatar.
454
+ *
455
+ * @return string Avatar.
456
+ */
457
  public function avatar_override( $avatar, $id_or_email, $size, $default, $alt, $args = array() ) {
458
  global $pagenow;
459
  if ( 'options-discussion.php' === $pagenow ) {
460
+ return $avatar; // Stop overriding gravatars on options-discussion page.
461
  }
462
 
463
+ // Get user data.
464
  if ( is_numeric( $id_or_email ) ) {
465
  $user = get_user_by( 'id', (int) $id_or_email );
466
  } elseif ( is_object( $id_or_email ) ) {
483
  }
484
  $user_id = $user->ID;
485
 
486
+ // Determine if user has an avatar override.
487
  $avatar_override = get_user_option( 'metronet_avatar_override', $user_id );
488
  if ( ! $avatar_override || 'on' !== $avatar_override ) {
489
  return $avatar;
490
  }
491
 
492
+ // Build classes array based on passed in args, else set defaults - see get_avatar in /wp-includes/pluggable.php.
493
  $classes = array(
494
  'avatar',
495
  sprintf( 'avatar-%s', esc_attr( $size ) ),
504
  }
505
  }
506
 
507
+ // Get custom filter classes.
508
  $classes = (array) apply_filters( 'mpp_avatar_classes', $classes );
509
 
510
+ // Determine if the user has a profile image.
511
  $custom_avatar = mt_profile_img(
512
  $user_id,
513
  array(
524
  return $avatar;
525
  }
526
  return $custom_avatar;
527
+ }
528
 
529
  /**
 
 
530
  * Overrides an avatar with a profile image
531
  *
532
+ * @param array $args Arguments to determine the avatar dimensions.
533
+ * @param mixed $id_or_email The ID or email address.
534
+ *
535
  * @return array $args Overridden URL or default if none can be found
536
  **/
537
  public function pre_avatar_override( $args, $id_or_email ) {
538
 
539
+ // Get user data.
540
  if ( is_numeric( $id_or_email ) ) {
541
  $user = get_user_by( 'id', (int) $id_or_email );
542
  } elseif ( is_object( $id_or_email ) ) {
559
  }
560
  $user_id = $user->ID;
561
 
562
+ // Get the post the user is attached to.
563
  $size = $args['size'];
564
 
565
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
568
  }
569
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
570
 
571
+ // Attempt to get the image in the right size.
572
  $avatar_image = get_the_post_thumbnail_url( $profile_post_id, array( $size, $size ) );
573
  if ( empty( $avatar_image ) ) {
574
  return $args;
578
  }
579
 
580
  /**
 
 
581
  * Returns an absolute path to a plugin item
582
  *
583
+ * @param string $path Relative path to make absolute (e.g., /css/image.png).
584
  *
585
  * @return string An absolute path (e.g., /htdocs/ithemes/wp-content/.../css/image.png)
586
  */
595
 
596
 
597
  /**
598
+ * Returns an absolute url to a plugin item
599
+ *
600
+ * @param string $path Relative path to plugin (e.g., /css/image.png).
601
+ * @return string An absolute url (e.g., http://www.domain.com/plugin_url/.../css/image.png)
602
+ */
 
 
603
  public static function get_plugin_url( $path = '' ) {
604
+ $dir = rtrim( plugin_dir_url( __FILE__ ), '/' );
605
  if ( ! empty( $path ) && is_string( $path ) ) {
606
  $dir .= '/' . ltrim( $path, '/' );
607
  }
609
  }
610
 
611
  /**
 
 
612
  * Gets a post id for the user - Creates a post if a post doesn't exist
613
  *
614
+ * @param int $user_id User ID of the user.
615
  * @return int post_id
616
+ */
617
  private function get_post_id( $user_id = 0 ) {
618
 
619
  $user = get_user_by( 'id', $user_id );
620
 
621
+ // Get/Create Profile Picture Post.
622
  $post_args = array(
623
  'post_type' => 'mt_pp',
624
  'author' => $user_id,
639
  $post_id = $post->ID;
640
  }
641
  return $post_id;
642
+ }
643
 
644
  /**
 
 
645
  * Retrieve a crop-image link (HTML) based on the passed post_id
646
  *
647
+ * @param int $post_id Post ID to find the featured image for.
648
  * @return string html
649
+ */
650
  private function get_post_thumbnail_editor_link( $post_id ) {
651
  ob_start();
652
  if ( has_post_thumbnail( $post_id ) && defined( 'PTE_VERSION' ) ) {
653
+ // Post Thumbnail Editor compatibility - http://wordpress.org/extend/plugins/post-thumbnail-editor/.
654
  $post_thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
655
+ $pte_url = add_query_arg(
656
  array(
657
  'page' => 'pte-edit',
658
  'pte-id' => $post_thumbnail_id,
660
  admin_url( 'upload.php' )
661
  );
662
  printf( ' - <a href="%s">%s</a>', esc_url( $pte_url ), esc_html__( 'Crop Thumbnail', 'metronet-profile-picture' ) );
663
+ }
664
  return ob_get_clean();
665
+ }
666
 
667
  /**
668
+ * Gets a user ID for the user.
 
 
 
 
669
  *
670
+ * @return int user_id
671
  */
672
  public function get_user_id() {
673
+ // Get user ID.
674
  $user_id = isset( $_GET['user_id'] ) ? absint( $_GET['user_id'] ) : 0; // phpcs:ignore
675
  if ( 0 === $user_id && IS_PROFILE_PAGE ) {
676
  $current_user = wp_get_current_user();
677
  $user_id = $current_user->ID;
678
  }
679
  return $user_id;
680
+ }
681
 
682
  /**
 
 
683
  * Initializes plugin localization, post types, updaters, plugin info, and adds actions/filters
 
684
  */
685
  public function init() {
686
 
687
+ // For the admin interface.
688
  add_action( 'admin_menu', array( $this, 'register_settings_menu' ) );
689
  add_action( 'plugin_action_links_' . METRONET_PROFILE_PICTURE_SLUG, array( $this, 'plugin_settings_link' ) );
690
 
691
+ add_theme_support( 'post-thumbnails' ); // This should be part of the theme, but the plugin registers it just in case.
692
+ // Register post types.
693
  $post_type_args = array(
694
  'public' => false,
695
  'publicly_queryable' => false,
726
  add_image_size( 'profile_150', 150, 150, true );
727
  add_image_size( 'profile_300', 300, 300, true );
728
  }
729
+ }
 
730
 
731
  /**
732
  * Adds a plugin settings link.
735
  *
736
  * @param array $settings The settings array for the plugin.
737
  *
738
+ * @return array Settings array.
739
  */
740
  public function plugin_settings_link( $settings ) {
741
+ $admin_anchor = sprintf(
742
  '<a href="%s">%s</a>',
743
  esc_url( admin_url( 'admin.php?page=mpp' ) ),
744
  esc_html__( 'Settings', 'metronet-profile-picture' )
758
  }
759
 
760
  /**
 
 
761
  * Adds an upload form to the user profile page and outputs profile image if there is one
762
  */
763
  public function insert_upload_form() {
764
  if ( ! current_user_can( 'upload_files' ) ) {
765
+ return; // Users must be author or greater.
766
  }
767
 
768
  $user_id = $this->get_user_id();
805
  <div id="metronet-override-avatar">
806
  <input type="hidden" name="metronet-user-avatar" value="off" />
807
  <?php
808
+ // Get the user avatar override option - If not set, see if there's a filter override.
809
  $user_avatar_override = get_user_option( 'metronet_avatar_override', $user_id );
810
+ $checked = '';
811
  if ( $user_avatar_override ) {
812
  $checked = checked( 'on', $user_avatar_override, false );
813
  } else {
814
  $checked = checked( true, apply_filters( 'mpp_avatar_override', false ), false );
815
  }
816
 
817
+ // Filter for hiding the override interface. If this option is set to true, the mpp_avatar_override filter is ignored and override is enabled by default.
818
  $hide_override = apply_filters( 'mpp_hide_avatar_override', false );
819
  if ( $hide_override ) :
820
  ?>
832
  * Allow other plugins to run code after the user profile picture UI.
833
  *
834
  * @since 2.3.0
 
835
  */
836
  do_action( 'mpp_user_profile_form', $user_id );
837
  } //end insert_upload_form
838
 
839
  /**
 
 
840
  * Output media scripts for thickbox and media uploader
841
  **/
842
  public function profile_print_media_scripts() {
846
  }
847
 
848
  /**
 
 
849
  * Output media scripts for thickbox and media uploader
850
  **/
851
  public function print_media_scripts() {
925
  <?php
926
  } //end print_media_scripts
927
 
928
+ /**
929
+ * Output stylesheet for media page.
930
+ */
931
  public function print_media_styles() {
932
  } //end print_media_styles
933
 
934
  /**
 
 
935
  * Gets permissions for the get users rest api endpoint.
936
  *
937
  * @return bool true if the user has permission, false if not
941
  }
942
 
943
  /**
944
+ * Registers REST API endpoints
945
+ */
 
 
946
  public function rest_api_register() {
947
  register_rest_field(
948
  'user',
985
  'permission_callback' => array( $this, 'rest_get_users_permissions_callback' ),
986
  )
987
  );
988
+ // keep it for backward compatibility.
989
  register_rest_route(
990
  'mpp/v1',
991
  '/user/(?P<id>\d+)',
1003
  }
1004
 
1005
  /**
 
 
1006
  * Gets users for the Gutenberg block
1007
  *
1008
+ * @param array $request WP REST API array.
1009
+ *
1010
+ * @return array A list of users.
1011
  **/
1012
  public function rest_api_get_users( $request ) {
1013
 
1028
  $user_results = $user_query->get_results();
1029
  $return = array();
1030
  foreach ( $user_results as $result ) {
1031
+ // Get attachment ID.
1032
+ $profile_post_id = absint( get_user_option( 'metronet_post_id', $result->data->ID ) );
1033
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1034
  if ( ! $post_thumbnail_id ) {
1035
  $result->data->has_profile_picture = false;
1038
  $result->data->profile_pictures = array(
1039
  'avatar' => get_avatar( $result->data->ID ),
1040
  );
1041
+ $result->data->is_user_logged_in = ( get_current_user_id() == $result->data->ID ) ? true : false; // phpcs:ignore
1042
  $return[ $result->data->ID ] = $result->data;
1043
  continue;
1044
  }
1045
  $result->data->description = get_user_meta( $result->data->ID, 'description', true );
1046
  $result->data->display_name = $result->data->display_name;
1047
  $result->data->has_profile_picture = true;
1048
+ $result->data->is_user_logged_in = ( get_current_user_id() == $result->data->ID ) ? true : false; // phpcs:ignore
1049
  $result->data->description = get_user_meta( $result->data->ID, 'description', true );
1050
 
1051
+ // Get attachment URL.
1052
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1053
 
1054
  $result->data->profile_picture_id = $post_thumbnail_id;
1070
  }
1071
 
1072
  /**
 
 
1073
  * Changes a profile image for a user.
1074
  *
1075
+ * @param array $request WP REST API array.
1076
  *
1077
+ * @return array image URLs matched to sizes
1078
  **/
1079
  public function rest_api_change_profile_image( $request ) {
1080
 
1091
 
1092
  $post_id = $this->get_post_id( $user_id );
1093
 
1094
+ // Save user meta.
1095
  update_user_option( $user_id, 'metronet_post_id', $post_id );
1096
+ update_user_option( $user_id, 'metronet_image_id', $media_id ); // Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data.
1097
 
1098
  set_post_thumbnail( $post_id, $media_id );
1099
 
1111
  }
1112
 
1113
  /**
 
 
1114
  * Adds a profile picture to a user
1115
  *
1116
+ * @param array $request WP REST API array.
1117
  *
1118
+ * @return array image URLs matched to sizes
1119
  **/
1120
  public function rest_api_put_profile( $request ) {
1121
 
1137
  }
1138
 
1139
  $post_id = $this->get_post_id( $user_id );
1140
+ // Save user meta.
1141
  update_user_option( $user_id, 'metronet_post_id', $post_id );
1142
+ update_user_option( $user_id, 'metronet_image_id', $media_id ); // Added via this thread (Props Solinx) - https://wordpress.org/support/topic/storing-image-id-directly-as-user-meta-data.
1143
 
1144
  set_post_thumbnail( $post_id, $media_id );
1145
 
1157
  }
1158
 
1159
  /**
 
 
1160
  * Returns the 5 most recent posts for the user
1161
+ *
1162
+ * @param array $request The REST Request data.
1163
  **/
1164
  public function rest_api_get_posts_for_user( $request ) {
1165
  $user_id = absint( $request['user_id'] );
1184
  wp_send_json( $posts );
1185
  }
1186
  /**
1187
+ * Returns an attachment image ID and profile image if available
1188
+ *
1189
+ * @param array $object REST object.
1190
+ * @param string $field_name The field to update.
1191
+ * @param array $request The request made.
1192
+ **/
1193
  public function rest_api_get_profile_for_user( $object, $field_name, $request ) {
1194
  $user_id = $object['id'];
1195
  $user = get_user_by( 'id', $user_id );
1197
  return new WP_Error( 'mpp_no_user', __( 'User not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1198
  }
1199
 
1200
+ // No capability check here because we're just returning user profile data.
1201
 
1202
+ // Get attachment ID.
1203
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1204
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1205
  if ( ! $post_thumbnail_id ) {
1206
  return new WP_Error( 'mpp_no_profile_picture', __( 'Profile picture not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1207
  }
1208
 
1209
+ // Get attachment URL.
1210
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1211
 
1212
  return array(
1220
  }
1221
 
1222
  /**
 
 
1223
  * Returns a profile for the user
1224
  *
1225
+ * @param array $data WP REST API array.
1226
  *
1227
  * @return json image URLs matched to sizes
1228
  **/
1233
  return new WP_Error( 'mpp_no_user', __( 'User not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1234
  }
1235
 
1236
+ // Get attachment ID.
1237
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1238
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1239
  if ( ! $post_thumbnail_id ) {
1240
  return new WP_Error( 'mpp_no_profile_picture', __( 'Profile picture not found.', 'metronet-profile-picture' ), array( 'status' => 404 ) );
1241
  }
1242
 
1243
+ // Get attachment URL.
1244
  $attachment_url = wp_get_attachment_url( $post_thumbnail_id );
1245
 
1246
  return array(
1250
  }
1251
 
1252
  /**
 
 
1253
  * Makes sure the ID we are passed is numeric
1254
+ *
1255
+ * @param mixed $param The paramater to validate.
1256
+ * @param array $request The REST request.
1257
+ * @param mixed $key The key to check.
1258
+ *
1259
+ * @return bool Whether to the parameter is numeric or not.
1260
  **/
1261
  public function rest_api_validate( $param, $request, $key ) {
1262
  return is_numeric( $param );
1263
  }
1264
 
1265
  /**
 
 
1266
  * Sanitizes user ID
1267
+ *
1268
+ * @param mixed $param The paramater to validate.
1269
+ * @param array $request The REST request.
1270
+ * @param mixed $key The key to check.
1271
+ *
1272
+ * @return int Sanitized user ID.
1273
  **/
1274
  public function rest_api_sanitize( $param, $request, $key ) {
1275
  return absint( $param );
1276
  }
1277
 
1278
  /**
 
 
1279
  * Saves user profile fields
1280
+ *
1281
+ * @param int $user_id The User ID to save.
1282
  **/
1283
  public function save_user_profile( $user_id ) {
1284
  if ( ! isset( $_POST['metronet-user-avatar'] ) ) {
1288
 
1289
  flush_rewrite_rules( true );
1290
 
1291
+ $user_avatar = filter_input( INPUT_POST, 'metronet-user-avatar' );
1292
  if ( 'on' === $user_avatar ) {
1293
  update_user_option( $user_id, 'metronet_avatar_override', 'on' );
1294
  } else {
1296
  }
1297
  } //end save_user_profile
1298
 
1299
+ }
1300
+
1301
+ // instantiate the class.
1302
  global $mt_pp;
1303
  if ( class_exists( 'Metronet_Profile_Picture' ) ) {
1304
  if ( get_bloginfo( 'version' ) >= '3.5' ) {
1305
  add_action( 'plugins_loaded', 'mt_mpp_instantiate', 10 );
1306
  }
1307
  }
1308
+
1309
+ /**
1310
+ * Instantiate User Profile Picture.
1311
+ */
1312
  function mt_mpp_instantiate() {
1313
  global $mt_pp;
1314
  $mt_pp = new Metronet_Profile_Picture();
1315
  }
1316
  /**
1317
+ * Template tag for outputting a profile image.
 
 
1318
  *
1319
+ * @param int $user_id The user ID for the user to retrieve the image for.
1320
+ * @param mixed $args Arguments for custom output.
1321
+ * size - string || array (see get_the_post_thumbnail).
1322
+ * attr - string || array (see get_the_post_thumbnail).
1323
+ * echo - bool (true or false) - whether to echo the image or return it.
1324
+ */
1325
  function mt_profile_img( $user_id, $args = array() ) {
1326
  $profile_post_id = absint( get_user_option( 'metronet_post_id', $user_id ) );
1327
 
1335
  'echo' => true,
1336
  );
1337
  $args = wp_parse_args( $args, $defaults );
1338
+ extract( $args ); // phpcs:ignore
1339
 
1340
  $post_thumbnail_id = get_post_thumbnail_id( $profile_post_id );
1341
 
1342
+ // Return false or echo nothing if there is no post thumbnail.
1343
  if ( ! $post_thumbnail_id ) {
1344
  if ( $echo ) {
1345
  echo '';
1349
  return;
1350
  }
1351
 
1352
+ // Implode Classes if set and array - dev note: edge case.
1353
  if ( is_array( $attr ) && isset( $attr['class'] ) ) {
1354
  if ( is_array( $attr['class'] ) ) {
1355
  $attr['class'] = implode( ' ', $attr['class'] );
1363
  *
1364
  * Filter outputted HTML.
1365
  *
1366
+ * @param string $post_thumbnail img tag with formed HTML.
1367
+ * @param int $profile_post_id The profile in which the image is attached.
1368
+ * @param int $profile_thumbnail_id The thumbnail ID for the attached image.
1369
+ * @param int $user_id The user id for which the image is attached.
 
1370
  */
1371
  $post_thumbnail = apply_filters( 'mpp_thumbnail_html', $post_thumbnail, $profile_post_id, $post_thumbnail_id, $user_id );
1372
  if ( $echo ) {
1377
  } //end mt_profile_img
1378
 
1379
  /**
 
 
1380
  * Adds a profile author box
1381
  *
1382
  * @since 2.2.0
1383
  *
1384
+ * @param int $user_id The user ID for the user to retrieve the profile for.
1385
+ * @param array $attributes See defaults in function for all attributes.
1386
  *
1387
  * @return string User profile box if user exists
1388
+ */
 
1389
  function mt_author_box( $user_id = 0, $attributes = array() ) {
1390
  $user = get_user_by( 'id', $user_id );
1391
  if ( false === $user ) {
1392
  return '';
1393
  }
1394
  $defaults = array(
1395
+ 'theme' => 'regular', /* Can be regular, compact, profile, or tabbed */
1396
  'profileAvatarShape' => 'square', /* Can be 'square' or 'rounded' */
1397
  'padding' => 10,
1398
  'border' => 1,
1434
  'socialGitHub' => '',
1435
  'socialMediaOptions' => 'brand', /* can be brand or custom */
1436
  'socialMediaColors' => '#000000', /* Only applicable if socialMediaOptions is custom */
1437
+ 'profileCompactAlignment' => 'center', // Can be left, center, or right.
1438
  /* Tabbed Attributes */
1439
  'tabbedAuthorProfileTitle' => '',
1440
  'tabbedAuthorSubHeading' => '',
1480
  <?php esc_html_e( 'View Posts', 'metronet-profile-picture' ); ?></a>
1481
  </div><!-- .mpp-profile-view-posts -->
1482
  <?php endif; ?>
1483
+ <?php if ( '' !== $attributes['website'] && $attributes['showWebsite'] ) : ?>
1484
  <div class="mpp-profile-view-website" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>;color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>; font-size: <?php echo esc_attr( $attributes['buttonFontSize'] ); ?>px;">
1485
+ <a href="<?php echo esc_url( $attributes['website'] ); ?>" style="background: <?php echo esc_attr( $attributes['profileWebsiteBackgroundColor'] ); ?>; color: <?php echo esc_attr( $attributes['profileWebsiteTextColor'] ); ?>;"><?php esc_html_e( 'View Website', 'metronet-profile-picture' ); ?></a>
1486
  </div><!-- .mpp-profile-view-website -->
1487
  <?php endif; ?>
1488
  </div><!-- .mpp-gutenberg-view-posts -->
1545
  </div>
1546
  <?php endif; /* Compact theme end */ ?>
1547
  <?php if ( true === $attributes['showSocialMedia'] && ( 'regular' === $attributes['theme'] || 'compact' === $attributes['theme'] || 'profile' === $attributes['theme'] ) ) : ?>
1548
+ <?php echo mpp_get_social_icons( $attributes ); // phpcs:ignore ?>
1549
  <?php endif; ?>
1550
  </div><!-- .mpp-profile-gutenberg-wrap -->
1551
  </div><!-- .mpp-profile-wrap -->
1580
  </div><!-- .mpp-author-social-wrapper -->
1581
  <?php if ( $attributes['showSocialMedia'] ) : ?>
1582
  <div class="mpp-author-social">
1583
+ <?php echo mpp_get_social_icons( $attributes ); // phpcs:ignore ?>
1584
  </div>
1585
  <?php endif; ?>
1586
  </div><!-- .mpp-author-social-wrapper -->
1634
  wp_enqueue_style( 'mpp_gutenberg', Metronet_Profile_Picture::get_plugin_url( '/css/front-end-gutenberg.css' ), array(), METRONET_PROFILE_PICTURE_VERSION, 'all' );
1635
  wp_enqueue_script( 'mpp_gutenberg_tabs', Metronet_Profile_Picture::get_plugin_url( 'js/mpp-frontend' . $min_or_not . '.js' ), array( 'jquery' ), METRONET_PROFILE_PICTURE_VERSION, true );
1636
  add_action( 'wp_footer', 'mpp_load_gutenblock_svgs' );
1637
+ echo ob_get_clean(); // phpcs:ignore
1638
  }
1639
  /**
 
 
1640
  * Get social icons based on passed attributes
1641
  *
1642
  * @see mt_author_box for attribute valies
1643
  *
1644
  * @since 2.2.0
1645
  *
1646
+ * @param array $attributes See defaults in function mt_author_box for all attributes.
1647
  *
1648
  * @return string User social icons
1649
+ */
 
1650
  function mpp_get_social_icons( $attributes ) {
1651
  ob_start();
1652
  ?>
1665
  </svg>
1666
  </a>
1667
  <?php endif; ?>
1668
+ <?php if ( ! empty( $attributes['socialInstagram'] ) ) : ?>
1669
  <a href="<?php echo esc_url( $attributes['socialInstagram'] ); ?>">
1670
  <svg class="icon icon-instagram" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1671
  <use href="#instagram"></use>
1693
  </svg>
1694
  </a>
1695
  <?php endif; ?>
1696
+ <?php if ( ! empty( $attributes['socialGitHub'] ) ) : ?>
1697
  <a href="<?php echo esc_url( $attributes['socialGitHub'] ); ?>">
1698
  <svg class="icon icon-github" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1699
  <use href="#github"></use>
1703
  <?php if ( ! empty( $attributes['socialWordPress'] ) ) : ?>
1704
  <a href="<?php echo esc_url( $attributes['socialWordPress'] ); ?>">
1705
  <svg class="icon icon-wordpress" role="img" style="<?php echo 'custom' === $attributes['socialMediaOptions'] ? 'fill:' . esc_attr( $attributes['socialMediaColors'] ) . ';' : ''; ?>">
1706
+ <use href="#wordpress"></use><?php // phpcs:ignore ?>
1707
  </svg>
1708
  </a>
1709
  <?php endif; ?>
1712
  return ob_get_clean();
1713
  }
1714
  /**
 
 
1715
  * Load social icons in footer of theme
1716
  *
1717
  * @since 2.2.0
1718
+ */
 
 
 
1719
  function mpp_load_gutenblock_svgs() {
1720
  /**
1721
  * Allow other plugins to run code from inside this SVG block.
1722
  *
1723
  * @since 2.3.0
 
1724
  */
1725
  do_action( 'mpp_svg_start' );
1726
  if ( '' !== get_post_type() ) {
1750
  * Allow other plugins to run code from inside this SVG block at the end.
1751
  *
1752
  * @since 2.3.0
 
1753
  */
1754
  do_action( 'mpp_svg_end' );
1755
  }
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: ronalfy, Alaadiaa
3
  Tags: users, user profile, gravatar, avatar, blocks, block
4
  Requires at least: 3.5
5
- Tested up to: 5.2
6
- Stable tag: 2.3.5
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -126,6 +126,11 @@ Yes, but you'll have to set a new profile image per site. This is currently a l
126
 
127
  == Changelog ==
128
 
 
 
 
 
 
129
  = 2.3.5 =
130
  * Released 2019-09-17
131
  * Added option in Gutenberg block to customize the View Posts and View Website text.
@@ -330,5 +335,5 @@ Yes, but you'll have to set a new profile image per site. This is currently a l
330
 
331
  == Upgrade Notice ==
332
 
333
- = 2.3.5 =
334
- Added option in Gutenberg block to customize the View Posts and View Website text.
2
  Contributors: ronalfy, Alaadiaa
3
  Tags: users, user profile, gravatar, avatar, blocks, block
4
  Requires at least: 3.5
5
+ Tested up to: 5.3
6
+ Stable tag: 2.3.6
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
126
 
127
  == Changelog ==
128
 
129
+ = 2.3.6 =
130
+ * Released 2019-10-09
131
+ * Updating compatibility with WordPress 5.3
132
+ * Fixing JavaScript error in WordPress 5.3
133
+
134
  = 2.3.5 =
135
  * Released 2019-09-17
136
  * Added option in Gutenberg block to customize the View Posts and View Website text.
335
 
336
  == Upgrade Notice ==
337
 
338
+ = 2.3.6 =
339
+ Ensuring plugin works with WordPress 5.3.
src/block/profile.js CHANGED
@@ -100,7 +100,7 @@ class MPP_Gutenberg_Enhanced extends Component {
100
  let profile_title = '';
101
  let profile_url = '';
102
  let show_website = '';
103
- $.each( response.data, function( key, value ) {
104
  users[value.ID] = {
105
  profile_pictures: value.profile_pictures,
106
  has_profile_picture: value.has_profile_picture,
100
  let profile_title = '';
101
  let profile_url = '';
102
  let show_website = '';
103
+ jQuery.each( response.data, function( key, value ) {
104
  users[value.ID] = {
105
  profile_pictures: value.profile_pictures,
106
  has_profile_picture: value.has_profile_picture,