diff --git a/js/dist/forum.js b/js/dist/forum.js index c9b4d32..7a9244d 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,2 +1,2 @@ -(()=>{var t={n:o=>{var a=o&&o.__esModule?()=>o.default:()=>o;return t.d(a,{a}),a},d:(o,a)=>{for(var n in a)t.o(a,n)&&!t.o(o,n)&&Object.defineProperty(o,n,{enumerable:!0,get:a[n]})},o:(t,o)=>Object.prototype.hasOwnProperty.call(t,o),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},o={};(()=>{"use strict";t.r(o);const a=flarum.core.compat["forum/app"];var n=t.n(a);const i=flarum.core.compat["common/Model"];var e=t.n(i);const s=flarum.core.compat["common/models/User"];var r=t.n(s);const c=flarum.core.compat["common/extend"],l=flarum.core.compat["forum/components/UserCard"];var f=t.n(l);const u=flarum.core.compat["common/components/Badge"];var b=t.n(u);const d=flarum.core.compat["common/utils/ItemList"];var p=t.n(d);const h=flarum.core.compat["common/utils/classList"];var v=t.n(h);function g(t,o){return g=Object.setPrototypeOf||function(t,o){return t.__proto__=o,t},g(t,o)}function y(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,g(t,o)}const w=flarum.core.compat["common/components/Modal"];var x=t.n(w);const k=flarum.core.compat["common/components/Button"];var S=t.n(k);const B=flarum.core.compat["common/utils/Stream"];var N=t.n(B);const C=flarum.core.compat["common/Component"];var E=t.n(C);const F=flarum.core.compat["common/utils/withAttr"];var _=t.n(F);const O=flarum.core.compat["common/components/Dropdown"];var j=t.n(O);const P=flarum.core.compat["common/helpers/icon"];var I=t.n(P),U=function(t){function o(){return t.apply(this,arguments)||this}y(o,t),o.initAttrs=function(o){t.initAttrs.call(this,o),o.className="icondropdown",o.buttonClassName="Button Button--icon",o.menuClassName="social-dropdown-menu"};var a=o.prototype;return a.oninit=function(o){t.prototype.oninit.call(this,o),this.icons={social:["fas fa-envelope","fas fa-globe","fab fa-amazon","fab fa-angellist","fab fa-apple","fab fa-behance","fab fa-bitbucket","fab fa-codepen","fab fa-connectdevelop","fab fa-dashcube","fab fa-delicious","fab fa-deviantart","fab fa-digg","fab fa-discord","fab fa-dribbble","fab fa-dropbox","fab fa-drupal","fab fa-facebook","fab fa-flickr","fab fa-foursquare","fab fa-get-pocket","fab fa-git","fab fa-github","fab fa-github-alt","fab fa-google","fab fa-google-plus","fab fa-google-wallet","fab fa-hacker-news","fab fa-instagram","fab fa-ioxhost","fab fa-joomla","fab fa-jsfiddle","fab fa-lastfm","fab fa-leanpub","fab fa-linkedin","fab fa-mastodon","fab fa-medium","fab fa-odnoklassniki","fab fa-opencart","fab fa-pagelines","fab fa-paypal","fab fa-pied-piper-alt","fab fa-pinterest-p","fab fa-playstation","fab fa-qq","fab fa-reddit","fab fa-renren","fab fa-sellsy","fas fa-share-alt","fab fa-shirtsinbulk","fab fa-simplybuilt","fab fa-skyatlas","fab fa-skype","fab fa-slack","fab fa-slideshare","fab fa-soundcloud","fab fa-spotify","fab fa-stack-exchange","fab fa-stack-overflow","fab fa-steam","fab fa-stumbleupon","fab fa-telegram","fab fa-tencent-weibo","fab fa-trello","fab fa-tripadvisor","fab fa-tumblr","fab fa-twitch","fab fa-twitter","fab fa-viacoin","fab fa-vimeo","fab fa-vine","fab fa-vk","fab fa-weibo","fab fa-weixin","fab fa-whatsapp","fab fa-wordpress","fab fa-xbox","fab fa-xing","fab fa-y-combinator","fab fa-yandex","fab fa-yandex-international","fab fa-yelp","fab fa-youtube"]}},a.view=function(o){return o.children=this.items().toArray(),t.prototype.view.call(this,o)},a.getButtonContent=function(){var t=this,o=function(t){return I()(t,{className:"icondropdown-activeIcon fa-fw"})};return[/^favicon(-\w+)?$/.test(this.attrs.selection())?this.attrs.allowsExternal?[m("img",{className:v()({"icondropdown-activeIcon":!0,"social-greyscale-button":"favicon-grey"===this.attrs.selection(),"social-button":"favicon-grey"===!this.attrs.selection()}),alt:"",src:this.attrs.favicon(),onerror:function(){t.attrs.favicon("none"),t.select(t.icons.social[0])}})]:o("fas fa-globe"):o(this.attrs.selection()),this.attrs.caretIcon?I()(this.attrs.caretIcon,{className:"Button-caret"}):""]},a.items=function(){var t=this,o=new(p());return"none"!==this.attrs.favicon()&&this.attrs.allowsExternal&&(o.add("favicon",m("div",{onclick:function(){return t.select("favicon")},role:"button",className:v()({"iconpicker-item":!0,"iconpicker-item--highlighted":"favicon"===this.attrs.selection()}),title:"Favicon"},m("img",{className:"iconpicker-image-"+this.attrs.index(),alt:"favicon",style:{width:"14px",height:"14px",margin:"0 2px 0 2px"},src:this.attrs.favicon()})),102),o.add("favicon-grey",m("div",{onclick:function(){return t.select("favicon-grey")},role:"button",className:v()({"iconpicker-item iconpicker-item--invertColors":!0,"iconpicker-item--highlighted":"favicon-grey"===this.attrs.selection()}),title:"Grey Favicon"},m("img",{className:"social-greyscale-button iconpicker-image-"+this.attrs.index(),alt:"favicon",style:{width:"14px",height:"14px",margin:"0 2px 0 2px"},src:this.attrs.favicon()})),101)),this.icons.social.forEach((function(a){o.add(a.replace(/ /,"-"),m("div",{onclick:function(){return t.select(a)},className:v()({"iconpicker-item":!0,"iconpicker-item--highlighted":t.attrs.selection()===a}),role:"button",title:"."+a},I()(a,{className:"social-icon fa-fw"})),100)})),o},a.select=function(t){this.attrs.selection(t)},o}(j()),M=function(t){function o(){return t.apply(this,arguments)||this}y(o,t);var a=o.prototype;return a.oninit=function(o){t.prototype.oninit.call(this,o),this.button=this.attrs.button,this.allowsExternal=n().forum.attribute("fof-socialprofile.allow_external_favicons")},a.view=function(t){return m("div",{className:"Form-group form-group-social",id:"socialgroup-"+this.button.index()},m("input",{type:"text",className:"FormControl SocialFormControl SocialFormControl-title",placeholder:n().translator.trans("fof-socialprofile.forum.edit.title"),tabIndex:2*(this.button.index()+1)-1,bidi:this.button.title}),U.component({selection:this.button.icon,favicon:this.button.favicon,index:this.button.index,allowsExternal:this.allowsExternal}),m("input",{type:"text",className:"FormControl SocialFormControl SocialFormControl-url",placeholder:n().translator.trans("fof-socialprofile.forum.edit.url"),tabIndex:2*(this.button.index()+1),value:this.button.url(),onchange:_()("value",this.onUrlChange.bind(this))}),m("input",{type:"hidden",className:"FormControl SocialFormControl SocialFormControl-icon",id:"icon"+this.button.index()+"-icon",bidi:this.button.icon}),m("input",{type:"hidden",className:"SocialFormControl SocialFormControl-favicon",id:"icon"+this.button.index()+"-favicon",bidi:this.button.favicon}))},a.onUrlChange=function(t){var o=this;this.button.url(t),this.allowsExternal&&(clearTimeout(this.waitUntilFinished),"fas fa-circle-notch fa-spin"!==this.button.icon()&&(this.button.icon("fas fa-circle-notch fa-spin"),this.button.favicon("none")),this.waitUntilFinished=setTimeout((function(){if(function(t){var o;try{o=new URL(t)}catch(t){return!1}return["http:","https:"].includes(o.protocol)}(o.button.url())){var t="https://icons.duckduckgo.com/ip3/"+function(t){var o;try{o=new URL(t)}catch(t){return null}return["http:","https:"].includes(o.protocol)?o.host:null}(o.button.url())+".ico";o.button.favicon(t),o.button.icon("favicon"),m.redraw()}else o.button.icon("fas fa-globe"),o.button.favicon("none"),m.redraw()}),1e3))},o}(E()),A=function(t){function o(){return t.apply(this,arguments)||this}y(o,t);var a=o.prototype;return a.oninit=function(o){var a=this;t.prototype.oninit.call(this,o),this.buttons=[];var n=this.attrs.user.socialButtons();n.length?n.forEach((function(t,o){t&&t.title&&a.createButtonObject(o,t)})):this.createButtonObject(0)},a.className=function(){return"SocialButtonsModal Modal--small"},a.title=function(){return n().translator.trans("fof-socialprofile.forum.edit.headtitle")},a.content=function(){var t=this.buttons.some((function(t){return"fas fa-circle-notch fa-spin"===t.icon()}));return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.buttons.map((function(t){return M.component({button:t})})),m("div",{className:"Form-group",id:"submit-button-group"},m("div",{className:"Button Button--primary EditSocialButtons-add",style:"margin-left: 1%;",onclick:this.addSocialButton.bind(this)},m("i",{className:"fas fa-fw fa-plus"})),m("div",{className:"Button Button--primary EditSocialButtons-del",style:"margin-left: 1%;",onclick:this.delSocialButton.bind(this)},m("i",{className:"fas fa-fw fa-minus"})),S().component({type:"submit",style:"float: right;",className:"Button Button--primary EditSocialButtons-save",loading:this.loading,disabled:t,title:t?n().translator.trans("fof-socialprofile.forum.edit.save_disabled_fetching_favicons"):null},n().translator.trans("fof-socialprofile.forum.edit.submit")))))},a.data=function(){var t=[];return this.buttons.forEach((function(o){o&&o.title()&&o.url()&&t.push({title:o.title(),url:o.url(),icon:o.icon(),favicon:o.favicon()})})),console.log(JSON.stringify(t)),{socialButtons:JSON.stringify(t)}},a.onsubmit=function(t){var o=this;t.preventDefault(),this.loading=!0,this.attrs.user.save(this.data(),{errorHandler:this.onerror.bind(this)}).then(this.hide.bind(this)).then($("#app").trigger("refreshSocialButtons",[this.data().socialButtons])).catch((function(){o.loading=!1,m.redraw()}))},a.addSocialButton=function(){var t=this;this.createButtonObject(this.buttons.length),m.redraw(),$("document").ready((function(){$("#socialgroup-"+(t.buttons.length-1)).slideDown()}))},a.delSocialButton=function(){var t=this,o=this.buttons.length-1;$("#socialgroup-"+o).slideUp("normal",(function(){t.buttons.splice(o,1),m.redraw()}))},a.createButtonObject=function(t,o){void 0===o&&(o=null),null==o?(this.buttons[t]={},this.buttons[t].index=N()(t),this.buttons[t].favicon=N()("none"),this.buttons[t].title=N()(""),this.buttons[t].url=N()(""),this.buttons[t].icon=N()("fas fa-globe")):(this.buttons[t]={},this.buttons[t].index=N()(t),this.buttons[t].favicon=N()(o.favicon),this.buttons[t].title=N()(o.title),this.buttons[t].url=N()(o.url),this.buttons[t].icon=N()(o.icon))},o}(x());n().initializers.add("fof/socialprofile",(function(){r().prototype.socialButtons=e().attribute("socialButtons",(function(t){return JSON.parse(t||"[]")})),r().prototype.canViewSocialProfile=e().attribute("canViewSocialProfile"),r().prototype.canEditSocialProfile=e().attribute("canEditSocialProfile"),(0,c.extend)(f().prototype,"infoItems",(function(t){var o=this,a=this.attrs.user;if(a.canViewSocialProfile()){this.canEdit=a.canEditSocialProfile(),this.buttons=this.attrs.user.socialButtons();var i=new(p());this.buttons.length?(this.buttons.forEach((function(t,a){if(t&&t.title&&t.icon&&t.url){var e,s,r={},c=v()(((e={})["social-button "+t.icon+"-"+a+" social-icon-"+a]=!0,e["social-greyscale-button"]="favicon-grey"===t.icon,e));"favicon"!==t.icon&&"favicon-grey"!==t.icon||(n().forum.attribute("fof-socialprofile.allow_external_favicons")?(r={backgroundImage:'url("'+t.favicon+'")',backgroundSize:"60%",backgroundPosition:"center",backgroundRepeat:"no-repeat"},console.log(r)):c+=" fas fa-globe"),i.add("social-icon-"+a,m("a",{href:t.url,target:"_blank",rel:"noreferrer noopener nofollow"},b().component({className:v()((s={},s[c]=!0,s["social-icon--deleting"]=o.deleting,s)),type:"social",icon:t.icon,label:t.title,style:r})))}})),this.canEdit&&i.add("settings social-button",b().component({type:"social social-settings",icon:"fas fa-cog",label:n().translator.trans("fof-socialprofile.forum.edit.edit"),onclick:function(){n().modal.show(A,{user:o.attrs.user})}}),-1)):this.canEdit&&i.add("settings social-button",b().component({type:"social null-social-settings",icon:"fas fa-plus",label:n().translator.trans("fof-socialprofile.forum.edit.add"),onclick:function(){n().modal.show(A,{user:o.attrs.user})}}),-1),i.toArray().length>0&&t.add("fofsocialprofile",i.toArray(),20)}}))}))})(),module.exports=o})(); +(()=>{var t={n:o=>{var a=o&&o.__esModule?()=>o.default:()=>o;return t.d(a,{a}),a},d:(o,a)=>{for(var n in a)t.o(a,n)&&!t.o(o,n)&&Object.defineProperty(o,n,{enumerable:!0,get:a[n]})},o:(t,o)=>Object.prototype.hasOwnProperty.call(t,o),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},o={};(()=>{"use strict";t.r(o);const a=flarum.core.compat["forum/app"];var n=t.n(a);const i=flarum.core.compat["common/Model"];var e=t.n(i);const s=flarum.core.compat["common/models/User"];var r=t.n(s);const c=flarum.core.compat["common/extend"],l=flarum.core.compat["forum/components/UserCard"];var f=t.n(l);const u=flarum.core.compat["common/components/Badge"];var b=t.n(u);const d=flarum.core.compat["common/utils/ItemList"];var p=t.n(d);const h=flarum.core.compat["common/utils/classList"];var v=t.n(h);function g(t,o){return g=Object.setPrototypeOf||function(t,o){return t.__proto__=o,t},g(t,o)}function y(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,g(t,o)}const w=flarum.core.compat["common/components/Modal"];var x=t.n(w);const k=flarum.core.compat["common/components/Button"];var S=t.n(k);const B=flarum.core.compat["common/utils/Stream"];var N=t.n(B);const C=flarum.core.compat["common/Component"];var E=t.n(C);const F=flarum.core.compat["common/utils/withAttr"];var _=t.n(F);const O=flarum.core.compat["common/components/Dropdown"];var j=t.n(O);const P=flarum.core.compat["common/helpers/icon"];var I=t.n(P),U=function(t){function o(){return t.apply(this,arguments)||this}y(o,t),o.initAttrs=function(o){t.initAttrs.call(this,o),o.className="icondropdown",o.buttonClassName="Button Button--icon",o.menuClassName="social-dropdown-menu"};var a=o.prototype;return a.oninit=function(o){t.prototype.oninit.call(this,o),this.icons={social:["fas fa-envelope","fas fa-globe","fab fa-amazon","fab fa-angellist","fab fa-apple","fab fa-behance","fab fa-bitbucket","fab fa-codepen","fab fa-connectdevelop","fab fa-dashcube","fab fa-delicious","fab fa-deviantart","fab fa-digg","fab fa-discord","fab fa-dribbble","fab fa-dropbox","fab fa-drupal","fab fa-facebook","fab fa-flickr","fab fa-foursquare","fab fa-get-pocket","fab fa-git","fab fa-github","fab fa-github-alt","fab fa-google","fab fa-google-plus","fab fa-google-wallet","fab fa-hacker-news","fab fa-instagram","fab fa-ioxhost","fab fa-joomla","fab fa-jsfiddle","fab fa-lastfm","fab fa-leanpub","fab fa-linkedin","fab fa-mastodon","fab fa-medium","fab fa-odnoklassniki","fab fa-opencart","fab fa-pagelines","fab fa-paypal","fab fa-pied-piper-alt","fab fa-pinterest-p","fab fa-playstation","fab fa-qq","fab fa-reddit","fab fa-renren","fab fa-sellsy","fas fa-share-alt","fab fa-shirtsinbulk","fab fa-simplybuilt","fab fa-skyatlas","fab fa-skype","fab fa-slack","fab fa-slideshare","fab fa-soundcloud","fab fa-spotify","fab fa-stack-exchange","fab fa-stack-overflow","fab fa-steam","fab fa-stumbleupon","fab fa-telegram","fab fa-tencent-weibo","fab fa-trello","fab fa-tripadvisor","fab fa-tumblr","fab fa-twitch","fab fa-twitter","fab fa-viacoin","fab fa-vimeo","fab fa-vine","fab fa-vk","fab fa-weibo","fab fa-weixin","fab fa-whatsapp","fab fa-wordpress","fab fa-xbox","fab fa-xing","fab fa-y-combinator","fab fa-yandex","fab fa-yandex-international","fab fa-yelp","fab fa-youtube"]}},a.view=function(o){return o.children=this.items().toArray(),t.prototype.view.call(this,o)},a.getButtonContent=function(){var t=this,o=function(t){return I()(t,{className:"icondropdown-activeIcon fa-fw"})};return[/^favicon(-\w+)?$/.test(this.attrs.selection())?this.attrs.allowsExternal?[m("img",{className:v()({"icondropdown-activeIcon":!0,"social-greyscale-button":"favicon-grey"===this.attrs.selection(),"social-button":"favicon-grey"===!this.attrs.selection()}),alt:"",src:this.attrs.favicon(),onerror:function(){t.attrs.favicon("none"),t.select(t.icons.social[0])}})]:o("fas fa-globe"):o(this.attrs.selection()),this.attrs.caretIcon?I()(this.attrs.caretIcon,{className:"Button-caret"}):""]},a.items=function(){var t=this,o=new(p());return"none"!==this.attrs.favicon()&&this.attrs.allowsExternal&&(o.add("favicon",m("div",{onclick:function(){return t.select("favicon")},role:"button",className:v()({"iconpicker-item":!0,"iconpicker-item--highlighted":"favicon"===this.attrs.selection()}),title:"Favicon"},m("img",{className:"iconpicker-image-"+this.attrs.index(),alt:"favicon",style:{width:"14px",height:"14px",margin:"0 2px 0 2px"},src:this.attrs.favicon()})),102),o.add("favicon-grey",m("div",{onclick:function(){return t.select("favicon-grey")},role:"button",className:v()({"iconpicker-item iconpicker-item--invertColors":!0,"iconpicker-item--highlighted":"favicon-grey"===this.attrs.selection()}),title:"Grey Favicon"},m("img",{className:"social-greyscale-button iconpicker-image-"+this.attrs.index(),alt:"favicon",style:{width:"14px",height:"14px",margin:"0 2px 0 2px"},src:this.attrs.favicon()})),101)),this.icons.social.forEach((function(a){o.add(a.replace(/ /,"-"),m("div",{onclick:function(){return t.select(a)},className:v()({"iconpicker-item":!0,"iconpicker-item--highlighted":t.attrs.selection()===a}),role:"button",title:"."+a},I()(a,{className:"social-icon fa-fw"})),100)})),o},a.select=function(t){this.attrs.selection(t)},o}(j()),M=function(t){function o(){return t.apply(this,arguments)||this}y(o,t);var a=o.prototype;return a.oninit=function(o){t.prototype.oninit.call(this,o),this.button=this.attrs.button,this.allowsExternal=n().forum.attribute("fof-socialprofile.allow_external_favicons")},a.view=function(t){return m("div",{className:"Form-group form-group-social",id:"socialgroup-"+this.button.index()},m("input",{type:"text",className:"FormControl SocialFormControl SocialFormControl-title",placeholder:n().translator.trans("fof-socialprofile.forum.edit.title"),tabIndex:2*(this.button.index()+1)-1,bidi:this.button.title}),U.component({selection:this.button.icon,favicon:this.button.favicon,index:this.button.index,allowsExternal:this.allowsExternal}),m("input",{type:"text",className:"FormControl SocialFormControl SocialFormControl-url",placeholder:n().translator.trans("fof-socialprofile.forum.edit.url"),tabIndex:2*(this.button.index()+1),value:this.button.url(),onchange:_()("value",this.onUrlChange.bind(this))}),m("input",{type:"hidden",className:"FormControl SocialFormControl SocialFormControl-icon",id:"icon"+this.button.index()+"-icon",bidi:this.button.icon}),m("input",{type:"hidden",className:"SocialFormControl SocialFormControl-favicon",id:"icon"+this.button.index()+"-favicon",bidi:this.button.favicon}))},a.onUrlChange=function(t){var o=this;this.button.url(t),this.allowsExternal&&(clearTimeout(this.waitUntilFinished),"fas fa-circle-notch fa-spin"!==this.button.icon()&&(this.button.icon("fas fa-circle-notch fa-spin"),this.button.favicon("none")),this.waitUntilFinished=setTimeout((function(){if(function(t){var o;try{o=new URL(t)}catch(t){return!1}return["http:","https:"].includes(o.protocol)}(o.button.url())){var t="https://icons.duckduckgo.com/ip3/"+function(t){var o;try{o=new URL(t)}catch(t){return null}return["http:","https:"].includes(o.protocol)?o.host:null}(o.button.url())+".ico";o.button.favicon(t),o.button.icon("favicon"),m.redraw()}else o.button.icon("fas fa-globe"),o.button.favicon("none"),m.redraw()}),1e3))},o}(E()),A=function(t){function o(){return t.apply(this,arguments)||this}y(o,t);var a=o.prototype;return a.oninit=function(o){var a=this;t.prototype.oninit.call(this,o),this.buttons=[];var n=this.attrs.user.socialButtons();n.length?n.forEach((function(t,o){t&&t.title&&a.createButtonObject(o,t)})):this.createButtonObject(0)},a.className=function(){return"SocialButtonsModal Modal--small"},a.title=function(){return n().translator.trans("fof-socialprofile.forum.edit.headtitle")},a.content=function(){var t=this.buttons.some((function(t){return"fas fa-circle-notch fa-spin"===t.icon()}));return m("div",{className:"Modal-body"},m("div",{className:"Form"},this.buttons.map((function(t){return M.component({button:t})})),m("div",{className:"Form-group",id:"submit-button-group"},m("div",{className:"Button Button--primary EditSocialButtons-add",style:"margin-left: 1%;",onclick:this.addSocialButton.bind(this)},m("i",{className:"fas fa-fw fa-plus"})),m("div",{className:"Button Button--primary EditSocialButtons-del",style:"margin-left: 1%;",onclick:this.delSocialButton.bind(this)},m("i",{className:"fas fa-fw fa-minus"})),S().component({type:"submit",style:"float: right;",className:"Button Button--primary EditSocialButtons-save",loading:this.loading,disabled:t,title:t?n().translator.trans("fof-socialprofile.forum.edit.save_disabled_fetching_favicons"):null},n().translator.trans("fof-socialprofile.forum.edit.submit")))))},a.data=function(){var t=[];return this.buttons.forEach((function(o){o&&o.title()&&o.url()&&t.push({title:o.title(),url:o.url(),icon:o.icon(),favicon:o.favicon()})})),{socialButtons:JSON.stringify(t)}},a.onsubmit=function(t){var o=this;t.preventDefault(),this.loading=!0,this.attrs.user.save(this.data(),{errorHandler:this.onerror.bind(this)}).then(this.hide.bind(this)).then($("#app").trigger("refreshSocialButtons",[this.data().socialButtons])).catch((function(){o.loading=!1,m.redraw()}))},a.addSocialButton=function(){var t=this;this.createButtonObject(this.buttons.length),m.redraw(),$("document").ready((function(){$("#socialgroup-"+(t.buttons.length-1)).slideDown()}))},a.delSocialButton=function(){var t=this,o=this.buttons.length-1;$("#socialgroup-"+o).slideUp("normal",(function(){t.buttons.splice(o,1),m.redraw()}))},a.createButtonObject=function(t,o){void 0===o&&(o=null),null==o?(this.buttons[t]={},this.buttons[t].index=N()(t),this.buttons[t].favicon=N()("none"),this.buttons[t].title=N()(""),this.buttons[t].url=N()(""),this.buttons[t].icon=N()("fas fa-globe")):(this.buttons[t]={},this.buttons[t].index=N()(t),this.buttons[t].favicon=N()(o.favicon),this.buttons[t].title=N()(o.title),this.buttons[t].url=N()(o.url),this.buttons[t].icon=N()(o.icon))},o}(x());n().initializers.add("fof/socialprofile",(function(){r().prototype.socialButtons=e().attribute("socialButtons",(function(t){return JSON.parse(t||"[]")})),r().prototype.canViewSocialProfile=e().attribute("canViewSocialProfile"),r().prototype.canEditSocialProfile=e().attribute("canEditSocialProfile"),(0,c.extend)(f().prototype,"infoItems",(function(t){var o=this,a=this.attrs.user;if(a.canViewSocialProfile()){this.canEdit=a.canEditSocialProfile(),this.buttons=this.attrs.user.socialButtons();var i=new(p());this.buttons.length?(this.buttons.forEach((function(t,a){if(t&&t.title&&t.icon&&t.url){var e,s,r={},c=v()(((e={})["social-button "+t.icon+"-"+a+" social-icon-"+a]=!0,e["social-greyscale-button"]="favicon-grey"===t.icon,e));"favicon"!==t.icon&&"favicon-grey"!==t.icon||(n().forum.attribute("fof-socialprofile.allow_external_favicons")?r={backgroundImage:'url("'+t.favicon+'")',backgroundSize:"60%",backgroundPosition:"center",backgroundRepeat:"no-repeat"}:c+=" fas fa-globe"),i.add("social-icon-"+a,m("a",{href:t.url,target:"_blank",rel:"noreferrer noopener nofollow"},b().component({className:v()((s={},s[c]=!0,s["social-icon--deleting"]=o.deleting,s)),type:"social",icon:t.icon,label:t.title,style:r})))}})),this.canEdit&&i.add("settings social-button",b().component({type:"social social-settings",icon:"fas fa-cog",label:n().translator.trans("fof-socialprofile.forum.edit.edit"),onclick:function(){n().modal.show(A,{user:o.attrs.user})}}),-1)):this.canEdit&&i.add("settings social-button",b().component({type:"social null-social-settings",icon:"fas fa-plus",label:n().translator.trans("fof-socialprofile.forum.edit.add"),onclick:function(){n().modal.show(A,{user:o.attrs.user})}}),-1),i.toArray().length>0&&t.add("fofsocialprofile",i.toArray(),20)}}))}))})(),module.exports=o})(); //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index 328aecd..25810ea 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/socialprofile/webpack/bootstrap","webpack://@fof/socialprofile/webpack/runtime/compat get default export","webpack://@fof/socialprofile/webpack/runtime/define property getters","webpack://@fof/socialprofile/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/socialprofile/webpack/runtime/make namespace object","webpack://@fof/socialprofile/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/socialprofile/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/socialprofile/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/withAttr']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/socialprofile/./src/forum/components/IconSelectorComponent.js","webpack://@fof/socialprofile/./src/forum/components/WebsiteInputComponent.js","webpack://@fof/socialprofile/./src/forum/helpers/isValidUrl.js","webpack://@fof/socialprofile/./src/forum/helpers/extractUriHost.js","webpack://@fof/socialprofile/./src/forum/components/SocialButtonsModal.js","webpack://@fof/socialprofile/./src/forum/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/withAttr'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","import Dropdown from 'flarum/common/components/Dropdown';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport icon from 'flarum/common/helpers/icon';\nimport classList from 'flarum/common/utils/classList';\n\nexport default class IconSelectorComponent extends Dropdown {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n attrs.className = 'icondropdown';\n attrs.buttonClassName = 'Button Button--icon';\n attrs.menuClassName = 'social-dropdown-menu';\n }\n\n oninit(vnode) {\n super.oninit(vnode);\n\n this.icons = {\n social: [\n 'fas fa-envelope',\n 'fas fa-globe',\n 'fab fa-amazon',\n 'fab fa-angellist',\n 'fab fa-apple',\n 'fab fa-behance',\n 'fab fa-bitbucket',\n 'fab fa-codepen',\n 'fab fa-connectdevelop',\n 'fab fa-dashcube',\n 'fab fa-delicious',\n 'fab fa-deviantart',\n 'fab fa-digg',\n 'fab fa-discord',\n 'fab fa-dribbble',\n 'fab fa-dropbox',\n 'fab fa-drupal',\n 'fab fa-facebook',\n 'fab fa-flickr',\n 'fab fa-foursquare',\n 'fab fa-get-pocket',\n 'fab fa-git',\n 'fab fa-github',\n 'fab fa-github-alt',\n 'fab fa-google',\n 'fab fa-google-plus',\n 'fab fa-google-wallet',\n 'fab fa-hacker-news',\n 'fab fa-instagram',\n 'fab fa-ioxhost',\n 'fab fa-joomla',\n 'fab fa-jsfiddle',\n 'fab fa-lastfm',\n 'fab fa-leanpub',\n 'fab fa-linkedin',\n 'fab fa-mastodon',\n 'fab fa-medium',\n 'fab fa-odnoklassniki',\n 'fab fa-opencart',\n 'fab fa-pagelines',\n 'fab fa-paypal',\n 'fab fa-pied-piper-alt',\n 'fab fa-pinterest-p',\n 'fab fa-playstation',\n 'fab fa-qq',\n 'fab fa-reddit',\n 'fab fa-renren',\n 'fab fa-sellsy',\n 'fas fa-share-alt',\n 'fab fa-shirtsinbulk',\n 'fab fa-simplybuilt',\n 'fab fa-skyatlas',\n 'fab fa-skype',\n 'fab fa-slack',\n 'fab fa-slideshare',\n 'fab fa-soundcloud',\n 'fab fa-spotify',\n 'fab fa-stack-exchange',\n 'fab fa-stack-overflow',\n 'fab fa-steam',\n 'fab fa-stumbleupon',\n 'fab fa-telegram',\n 'fab fa-tencent-weibo',\n 'fab fa-trello',\n 'fab fa-tripadvisor',\n 'fab fa-tumblr',\n 'fab fa-twitch',\n 'fab fa-twitter',\n 'fab fa-viacoin',\n 'fab fa-vimeo',\n 'fab fa-vine',\n 'fab fa-vk',\n 'fab fa-weibo',\n 'fab fa-weixin',\n 'fab fa-whatsapp',\n 'fab fa-wordpress',\n 'fab fa-xbox',\n 'fab fa-xing',\n 'fab fa-y-combinator',\n 'fab fa-yandex',\n 'fab fa-yandex-international',\n 'fab fa-yelp',\n 'fab fa-youtube',\n ],\n };\n }\n\n view(vnode) {\n vnode.children = this.items().toArray();\n\n return super.view(vnode);\n }\n\n getButtonContent() {\n const ic = (str) => icon(str, { className: 'icondropdown-activeIcon fa-fw' });\n\n return [\n /^favicon(-\\w+)?$/.test(this.attrs.selection())\n ? this.attrs.allowsExternal\n ? [\n {\n this.attrs.favicon('none');\n this.select(this.icons.social[0]);\n }}\n />,\n ]\n : ic('fas fa-globe')\n : ic(this.attrs.selection()),\n this.attrs.caretIcon ? icon(this.attrs.caretIcon, { className: 'Button-caret' }) : '',\n ];\n }\n\n items() {\n const items = new ItemList();\n\n if (this.attrs.favicon() !== 'none' && this.attrs.allowsExternal) {\n items.add(\n 'favicon',\n this.select('favicon')}\n role=\"button\"\n className={classList({\n 'iconpicker-item': true,\n 'iconpicker-item--highlighted': this.attrs.selection() === 'favicon',\n })}\n title=\"Favicon\"\n >\n \n ,\n 102\n );\n\n items.add(\n 'favicon-grey',\n this.select('favicon-grey')}\n role=\"button\"\n className={classList({\n 'iconpicker-item iconpicker-item--invertColors': true,\n 'iconpicker-item--highlighted': this.attrs.selection() === 'favicon-grey',\n })}\n title=\"Grey Favicon\"\n >\n \n ,\n 101\n );\n }\n\n this.icons.social.forEach((curIcon) => {\n items.add(\n curIcon.replace(/ /, '-'),\n this.select(curIcon)}\n className={classList({ 'iconpicker-item': true, 'iconpicker-item--highlighted': this.attrs.selection() === curIcon })}\n role=\"button\"\n title={`.${curIcon}`}\n >\n {icon(curIcon, { className: 'social-icon fa-fw' })}\n ,\n 100\n );\n });\n\n return items;\n }\n\n select(icon) {\n this.attrs.selection(icon);\n }\n}\n","import app from 'flarum/forum/app';\nimport Component from 'flarum/common/Component';\nimport withAttr from 'flarum/common/utils/withAttr';\nimport extractUriHost from '../helpers/extractUriHost';\nimport isValidUrl from '../helpers/isValidUrl';\nimport IconSelectorComponent from './IconSelectorComponent';\n\nexport default class WebsiteInputComponent extends Component {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.button = this.attrs.button;\n\n this.allowsExternal = app.forum.attribute('fof-socialprofile.allow_external_favicons');\n }\n\n view(vnode) {\n return (\n
\n \n\n {IconSelectorComponent.component({\n selection: this.button.icon,\n favicon: this.button.favicon,\n index: this.button.index,\n allowsExternal: this.allowsExternal,\n })}\n\n \n\n \n\n \n
\n );\n }\n\n onUrlChange(value) {\n this.button.url(value);\n\n if (!this.allowsExternal) {\n return;\n }\n\n clearTimeout(this.waitUntilFinished);\n\n if (this.button.icon() !== 'fas fa-circle-notch fa-spin') {\n this.button.icon('fas fa-circle-notch fa-spin');\n this.button.favicon('none');\n }\n\n this.waitUntilFinished = setTimeout(() => {\n if (isValidUrl(this.button.url())) {\n const iconurl = `https://icons.duckduckgo.com/ip3/${extractUriHost(this.button.url())}.ico`;\n\n this.button.favicon(iconurl);\n this.button.icon('favicon');\n\n m.redraw();\n } else {\n this.button.icon('fas fa-globe');\n this.button.favicon('none');\n m.redraw();\n }\n }, 1000);\n }\n}\n","/**\n * Verifies if a string is a valid URL (http/https only).\n *\n * @param {string} url URL to test\n */\nexport default function isValidUrl(url) {\n let urlInstance;\n\n try {\n urlInstance = new URL(url);\n } catch (_) {\n return false;\n }\n\n return ['http:', 'https:'].includes(urlInstance.protocol);\n}\n","/**\n * Extracts the host of a specified URI. Returns `null` if the URL is invalid.\n *\n * @example\n * // www.google.com\n * extractBaseUrl(\"https://www.google.com/search?q=flarum\")\n *\n * @example\n * // discuss.flarum.org\n * extractBaseUrl(\"https://discuss.flarum.org/u/admin\")\n *\n * @example\n * // null\n * extractBaseUrl(\"javascript:alert('hello!')\")\n *\n * @param {string|null} url URL to extract base from\n */\nexport default function extractUriHost(url) {\n let urlInstance;\n\n try {\n urlInstance = new URL(url);\n } catch (_) {\n return null;\n }\n\n if (['http:', 'https:'].includes(urlInstance.protocol)) {\n return urlInstance.host;\n }\n\n return null;\n}\n","import app from 'flarum/forum/app';\nimport Modal from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport WebsiteInputComponent from './WebsiteInputComponent';\n\nexport default class SocialButtonsModal extends Modal {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.buttons = [];\n const buttons = this.attrs.user.socialButtons();\n\n if (buttons.length) {\n buttons.forEach((button, index) => {\n if (button && button.title) {\n this.createButtonObject(index, button);\n }\n });\n } else {\n this.createButtonObject(0);\n }\n }\n\n className() {\n return 'SocialButtonsModal Modal--small';\n }\n\n title() {\n return app.translator.trans('fof-socialprofile.forum.edit.headtitle');\n }\n\n content() {\n const areAnyIconsBeingFetched = this.buttons.some((button) => button.icon() === 'fas fa-circle-notch fa-spin');\n\n return (\n
\n
\n {this.buttons.map((button) => WebsiteInputComponent.component({ button }))}\n\n
\n
\n \n
\n\n
\n \n
\n\n {Button.component(\n {\n type: 'submit',\n style: 'float: right;',\n className: 'Button Button--primary EditSocialButtons-save',\n loading: this.loading,\n // Disable save button if favicons are being fetched\n disabled: areAnyIconsBeingFetched,\n title: areAnyIconsBeingFetched ? app.translator.trans('fof-socialprofile.forum.edit.save_disabled_fetching_favicons') : null,\n },\n app.translator.trans('fof-socialprofile.forum.edit.submit')\n )}\n
\n
\n
\n );\n }\n\n data() {\n const buttons = [];\n\n this.buttons.forEach((button) => {\n if (button && button.title() && button.url()) {\n buttons.push({\n title: button.title(),\n url: button.url(),\n icon: button.icon(),\n favicon: button.favicon(),\n });\n }\n });\n\n console.log(JSON.stringify(buttons));\n\n return {\n socialButtons: JSON.stringify(buttons),\n };\n }\n\n onsubmit(e) {\n e.preventDefault();\n\n this.loading = true;\n\n this.attrs.user\n .save(this.data(), { errorHandler: this.onerror.bind(this) })\n .then(this.hide.bind(this))\n .then($('#app').trigger('refreshSocialButtons', [this.data().socialButtons]))\n .catch(() => {\n this.loading = false;\n m.redraw();\n });\n }\n\n addSocialButton() {\n this.createButtonObject(this.buttons.length);\n\n m.redraw();\n\n $('document').ready(() => {\n $(`#socialgroup-${this.buttons.length - 1}`).slideDown();\n });\n }\n\n delSocialButton() {\n const curdel = this.buttons.length - 1;\n\n $(`#socialgroup-${curdel}`).slideUp('normal', () => {\n this.buttons.splice(curdel, 1);\n m.redraw();\n });\n }\n\n createButtonObject(key, button = null) {\n if (button == null) {\n this.buttons[key] = {};\n this.buttons[key].index = Stream(key);\n this.buttons[key].favicon = Stream('none');\n this.buttons[key].title = Stream('');\n this.buttons[key].url = Stream('');\n this.buttons[key].icon = Stream('fas fa-globe');\n } else {\n this.buttons[key] = {};\n this.buttons[key].index = Stream(key);\n this.buttons[key].favicon = Stream(button.favicon);\n this.buttons[key].title = Stream(button.title);\n this.buttons[key].url = Stream(button.url);\n this.buttons[key].icon = Stream(button.icon);\n }\n }\n}\n","import app from 'flarum/forum/app';\nimport Model from 'flarum/common/Model';\nimport User from 'flarum/common/models/User';\nimport { extend } from 'flarum/common/extend';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport Badge from 'flarum/common/components/Badge';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport classList from 'flarum/common/utils/classList';\n\nimport SocialButtonsModal from './components/SocialButtonsModal';\n\napp.initializers.add('fof/socialprofile', () => {\n User.prototype.socialButtons = Model.attribute('socialButtons', (str) => JSON.parse(str || '[]'));\n User.prototype.canViewSocialProfile = Model.attribute('canViewSocialProfile');\n User.prototype.canEditSocialProfile = Model.attribute('canEditSocialProfile');\n\n extend(UserCard.prototype, 'infoItems', function (items) {\n const user = this.attrs.user;\n\n if (!user.canViewSocialProfile()) {\n return;\n }\n\n this.canEdit = user.canEditSocialProfile();\n this.buttons = this.attrs.user.socialButtons();\n\n const buttonList = new ItemList();\n\n if (this.buttons.length) {\n this.buttons.forEach((button, index) => {\n if (button && button.title && button.icon && button.url) {\n let buttonStyle = {};\n let buttonClassName = classList({\n [`social-button ${button.icon}-${index} social-icon-${index}`]: true,\n 'social-greyscale-button': button.icon === 'favicon-grey',\n });\n\n if (button.icon === 'favicon' || button.icon === 'favicon-grey') {\n if (app.forum.attribute('fof-socialprofile.allow_external_favicons')) {\n buttonStyle = {\n backgroundImage: `url(\"${button.favicon}\")`,\n backgroundSize: '60%',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n };\n\n console.log(buttonStyle);\n } else {\n buttonClassName += ' fas fa-globe';\n }\n }\n\n buttonList.add(\n `social-icon-${index}`,\n \n {Badge.component({\n className: classList({ [buttonClassName]: true, 'social-icon--deleting': this.deleting }),\n type: `social`,\n icon: button.icon,\n label: button.title,\n style: buttonStyle,\n })}\n \n );\n }\n });\n\n if (this.canEdit) {\n buttonList.add(\n 'settings social-button',\n Badge.component({\n type: 'social social-settings',\n icon: 'fas fa-cog',\n label: app.translator.trans('fof-socialprofile.forum.edit.edit'),\n onclick: () => {\n app.modal.show(SocialButtonsModal, { user: this.attrs.user });\n },\n }),\n -1\n );\n }\n } else if (this.canEdit) {\n buttonList.add(\n 'settings social-button',\n Badge.component({\n type: 'social null-social-settings',\n icon: 'fas fa-plus',\n label: app.translator.trans('fof-socialprofile.forum.edit.add'),\n onclick: () => {\n app.modal.show(SocialButtonsModal, { user: this.attrs.user });\n },\n }),\n -1\n );\n }\n\n if (buttonList.toArray().length > 0) {\n items.add('fofsocialprofile', buttonList.toArray(), 20);\n }\n });\n});\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","p","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","IconSelectorComponent","initAttrs","attrs","className","buttonClassName","menuClassName","oninit","vnode","this","icons","social","view","children","items","toArray","getButtonContent","ic","str","icon","test","selection","allowsExternal","classList","alt","src","favicon","onerror","select","caretIcon","ItemList","add","onclick","role","title","index","style","width","height","margin","forEach","curIcon","replace","Dropdown","WebsiteInputComponent","button","app","id","type","placeholder","tabIndex","bidi","component","url","onchange","withAttr","onUrlChange","bind","clearTimeout","waitUntilFinished","setTimeout","urlInstance","URL","_","includes","protocol","isValidUrl","iconurl","host","extractUriHost","m","redraw","Component","SocialButtonsModal","buttons","user","socialButtons","length","createButtonObject","content","areAnyIconsBeingFetched","some","map","addSocialButton","delSocialButton","Button","loading","disabled","data","push","console","log","JSON","stringify","onsubmit","e","preventDefault","save","errorHandler","then","hide","$","trigger","ready","slideDown","curdel","slideUp","splice","Stream","Modal","User","Model","parse","extend","UserCard","canViewSocialProfile","canEdit","canEditSocialProfile","buttonList","buttonStyle","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","href","target","rel","Badge","deleting","label"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"MACA,IAAIA,EAAsB,CCA1BA,EAAyBC,IACxB,IAAIC,EAASD,GAAUA,EAAOE,WAC7B,IAAOF,EAAiB,QACxB,IAAM,EAEP,OADAD,EAAoBI,EAAEF,EAAQ,CAAEG,IACzBH,GCLRF,EAAwB,CAACM,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBS,EAAEF,EAAYC,KAASR,EAAoBS,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3ER,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,M,+BCLvD,MAAM,EAA+BC,OAAOC,KAAKC,OAAO,a,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,gB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,sB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,iBCAlD,EAA+BF,OAAOC,KAAKC,OAAO,6B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,2B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,yB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,0B,aCAzC,SAASC,EAAgBhB,EAAGiB,GAMzC,OALAD,EAAkBf,OAAOiB,gBAAkB,SAAyBlB,EAAGiB,GAErE,OADAjB,EAAEmB,UAAYF,EACPjB,GAGFgB,EAAgBhB,EAAGiB,GCLb,SAASG,EAAeC,EAAUC,GAC/CD,EAASd,UAAYN,OAAOsB,OAAOD,EAAWf,WAC9Cc,EAASd,UAAUiB,YAAcH,EACjCH,EAAeG,EAAUC,GCJ3B,MAAM,EAA+BT,OAAOC,KAAKC,OAAO,2B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,4B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,uB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,oB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,yB,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,8B,aCAxD,MAAM,EAA+BF,OAAOC,KAAKC,OAAO,uB,aCKnCU,EAAAA,SAAAA,G,2DACZC,UAAP,SAAiBC,GACf,EAAMD,UAAN,UAAgBC,GAEhBA,EAAMC,UAAY,eAClBD,EAAME,gBAAkB,sBACxBF,EAAMG,cAAgB,wB,2BAGxBC,OAAA,SAAOC,GACL,YAAMD,OAAN,UAAaC,GAEbC,KAAKC,MAAQ,CACXC,OAAQ,CACN,kBACA,eACA,gBACA,mBACA,eACA,iBACA,mBACA,iBACA,wBACA,kBACA,mBACA,oBACA,cACA,iBACA,kBACA,iBACA,gBACA,kBACA,gBACA,oBACA,oBACA,aACA,gBACA,oBACA,gBACA,qBACA,uBACA,qBACA,mBACA,iBACA,gBACA,kBACA,gBACA,iBACA,kBACA,kBACA,gBACA,uBACA,kBACA,mBACA,gBACA,wBACA,qBACA,qBACA,YACA,gBACA,gBACA,gBACA,mBACA,sBACA,qBACA,kBACA,eACA,eACA,oBACA,oBACA,iBACA,wBACA,wBACA,eACA,qBACA,kBACA,uBACA,gBACA,qBACA,gBACA,gBACA,iBACA,iBACA,eACA,cACA,YACA,eACA,gBACA,kBACA,mBACA,cACA,cACA,sBACA,gBACA,8BACA,cACA,oB,EAKNC,KAAA,SAAKJ,GAGH,OAFAA,EAAMK,SAAWJ,KAAKK,QAAQC,UAEvB,EAAP,UAAaH,KAAb,UAAkBJ,I,EAGpBQ,iBAAA,WAAmB,WACXC,EAAK,SAACC,GAAD,OAASC,GAAAA,CAAKD,EAAK,CAAEd,UAAW,mCAE3C,MAAO,CACL,mBAAmBgB,KAAKX,KAAKN,MAAMkB,aAC/BZ,KAAKN,MAAMmB,eACT,CACE,SACElB,UAAWmB,GAAAA,CAAU,CACnB,2BAA2B,EAC3B,0BAAsD,iBAA3Bd,KAAKN,MAAMkB,YACtC,gBAA6C,kBAA3BZ,KAAKN,MAAMkB,cAE/BG,IAAI,GACJC,IAAKhB,KAAKN,MAAMuB,UAChBC,QAAS,WACP,EAAKxB,MAAMuB,QAAQ,QACnB,EAAKE,OAAO,EAAKlB,MAAMC,OAAO,QAIpCM,EAAG,gBACLA,EAAGR,KAAKN,MAAMkB,aAClBZ,KAAKN,MAAM0B,UAAYV,GAAAA,CAAKV,KAAKN,MAAM0B,UAAW,CAAEzB,UAAW,iBAAoB,K,EAIvFU,MAAA,WAAQ,WACAA,EAAQ,IAAIgB,KA6DlB,MA3D6B,SAAzBrB,KAAKN,MAAMuB,WAAwBjB,KAAKN,MAAMmB,iBAChDR,EAAMiB,IACJ,UACA,SACEC,QAAS,kBAAM,EAAKJ,OAAO,YAC3BK,KAAK,SACL7B,UAAWmB,GAAAA,CAAU,CACnB,mBAAmB,EACnB,+BAA2D,YAA3Bd,KAAKN,MAAMkB,cAE7Ca,MAAM,WAEN,SACE9B,UAAS,oBAAsBK,KAAKN,MAAMgC,QAC1CX,IAAI,UACJY,MAAO,CAAEC,MAAO,OAAQC,OAAQ,OAAQC,OAAQ,eAChDd,IAAKhB,KAAKN,MAAMuB,aAGpB,KAGFZ,EAAMiB,IACJ,eACA,SACEC,QAAS,kBAAM,EAAKJ,OAAO,iBAC3BK,KAAK,SACL7B,UAAWmB,GAAAA,CAAU,CACnB,iDAAiD,EACjD,+BAA2D,iBAA3Bd,KAAKN,MAAMkB,cAE7Ca,MAAM,gBAEN,SACE9B,UAAS,4CAA8CK,KAAKN,MAAMgC,QAClEX,IAAI,UACJY,MAAO,CAAEC,MAAO,OAAQC,OAAQ,OAAQC,OAAQ,eAChDd,IAAKhB,KAAKN,MAAMuB,aAGpB,MAIJjB,KAAKC,MAAMC,OAAO6B,SAAQ,SAACC,GACzB3B,EAAMiB,IACJU,EAAQC,QAAQ,IAAK,KACrB,SACEV,QAAS,kBAAM,EAAKJ,OAAOa,IAC3BrC,UAAWmB,GAAAA,CAAU,CAAE,mBAAmB,EAAM,+BAAgC,EAAKpB,MAAMkB,cAAgBoB,IAC3GR,KAAK,SACLC,MAAK,IAAMO,GAEVtB,GAAAA,CAAKsB,EAAS,CAAErC,UAAW,uBAE9B,QAIGU,G,EAGTc,OAAA,SAAOT,GACLV,KAAKN,MAAMkB,UAAUF,I,EAxMJlB,CAA8B0C,KCE9BC,EAAAA,SAAAA,G,oFACnBrC,OAAA,SAAOC,GACL,YAAMD,OAAN,UAAaC,GAEbC,KAAKoC,OAASpC,KAAKN,MAAM0C,OAEzBpC,KAAKa,eAAiBwB,IAAAA,MAAAA,UAAoB,8C,EAG5ClC,KAAA,SAAKJ,GACH,OACE,SAAKJ,UAAU,+BAA+B2C,GAAE,eAAiBtC,KAAKoC,OAAOV,SAC3E,WACEa,KAAK,OACL5C,UAAU,wDACV6C,YAAaH,IAAAA,WAAAA,MAAqB,sCAClCI,SAAsC,GAA3BzC,KAAKoC,OAAOV,QAAU,GAAS,EAC1CgB,KAAM1C,KAAKoC,OAAOX,QAGnBjC,EAAsBmD,UAAU,CAC/B/B,UAAWZ,KAAKoC,OAAO1B,KACvBO,QAASjB,KAAKoC,OAAOnB,QACrBS,MAAO1B,KAAKoC,OAAOV,MACnBb,eAAgBb,KAAKa,iBAGvB,WACE0B,KAAK,OACL5C,UAAU,sDACV6C,YAAaH,IAAAA,WAAAA,MAAqB,oCAClCI,SAAsC,GAA3BzC,KAAKoC,OAAOV,QAAU,GACjC/C,MAAOqB,KAAKoC,OAAOQ,MACnBC,SAAUC,GAAAA,CAAS,QAAS9C,KAAK+C,YAAYC,KAAKhD,SAGpD,WACEuC,KAAK,SACL5C,UAAU,uDACV2C,GAAE,OAAStC,KAAKoC,OAAOV,QAArB,QACFgB,KAAM1C,KAAKoC,OAAO1B,OAGpB,WACE6B,KAAK,SACL5C,UAAU,8CACV2C,GAAE,OAAStC,KAAKoC,OAAOV,QAArB,WACFgB,KAAM1C,KAAKoC,OAAOnB,Y,EAM1B8B,YAAA,SAAYpE,GAAO,WACjBqB,KAAKoC,OAAOQ,IAAIjE,GAEXqB,KAAKa,iBAIVoC,aAAajD,KAAKkD,mBAES,gCAAvBlD,KAAKoC,OAAO1B,SACdV,KAAKoC,OAAO1B,KAAK,+BACjBV,KAAKoC,OAAOnB,QAAQ,SAGtBjB,KAAKkD,kBAAoBC,YAAW,WAClC,GCtES,SAAoBP,GACjC,IAAIQ,EAEJ,IACEA,EAAc,IAAIC,IAAIT,GACtB,MAAOU,GACP,OAAO,EAGT,MAAO,CAAC,QAAS,UAAUC,SAASH,EAAYI,UD6DxCC,CAAW,EAAKrB,OAAOQ,OAAQ,CACjC,IAAMc,EAAU,oCE3DT,SAAwBd,GACrC,IAAIQ,EAEJ,IACEA,EAAc,IAAIC,IAAIT,GACtB,MAAOU,GACP,OAAO,KAGT,MAAI,CAAC,QAAS,UAAUC,SAASH,EAAYI,UACpCJ,EAAYO,KAGd,KF8CmDC,CAAe,EAAKxB,OAAOQ,OAAlE,OAEb,EAAKR,OAAOnB,QAAQyC,GACpB,EAAKtB,OAAO1B,KAAK,WAEjBmD,EAAEC,cAEF,EAAK1B,OAAO1B,KAAK,gBACjB,EAAK0B,OAAOnB,QAAQ,QACpB4C,EAAEC,WAEH,O,EAhFc3B,CAA8B4B,KGD9BC,EAAAA,SAAAA,G,oFACnBlE,OAAA,SAAOC,GAAO,WACZ,YAAMD,OAAN,UAAaC,GAEbC,KAAKiE,QAAU,GACf,IAAMA,EAAUjE,KAAKN,MAAMwE,KAAKC,gBAE5BF,EAAQG,OACVH,EAAQlC,SAAQ,SAACK,EAAQV,GACnBU,GAAUA,EAAOX,OACnB,EAAK4C,mBAAmB3C,EAAOU,MAInCpC,KAAKqE,mBAAmB,I,EAI5B1E,UAAA,WACE,MAAO,mC,EAGT8B,MAAA,WACE,OAAOY,IAAAA,WAAAA,MAAqB,2C,EAG9BiC,QAAA,WACE,IAAMC,EAA0BvE,KAAKiE,QAAQO,MAAK,SAACpC,GAAD,MAA8B,gCAAlBA,EAAO1B,UAErE,OACE,SAAKf,UAAU,cACb,SAAKA,UAAU,QACZK,KAAKiE,QAAQQ,KAAI,SAACrC,GAAD,OAAYD,EAAsBQ,UAAU,CAAEP,OAAAA,OAEhE,SAAKzC,UAAU,aAAa2C,GAAG,uBAC7B,SAAK3C,UAAU,+CAA+CgC,MAAM,mBAAmBJ,QAASvB,KAAK0E,gBAAgB1B,KAAKhD,OACxH,OAAGL,UAAU,uBAGf,SAAKA,UAAU,+CAA+CgC,MAAM,mBAAmBJ,QAASvB,KAAK2E,gBAAgB3B,KAAKhD,OACxH,OAAGL,UAAU,wBAGdiF,IAAAA,UACC,CACErC,KAAM,SACNZ,MAAO,gBACPhC,UAAW,gDACXkF,QAAS7E,KAAK6E,QAEdC,SAAUP,EACV9C,MAAO8C,EAA0BlC,IAAAA,WAAAA,MAAqB,gEAAkE,MAE1HA,IAAAA,WAAAA,MAAqB,4C,EAQjC0C,KAAA,WACE,IAAMd,EAAU,GAahB,OAXAjE,KAAKiE,QAAQlC,SAAQ,SAACK,GAChBA,GAAUA,EAAOX,SAAWW,EAAOQ,OACrCqB,EAAQe,KAAK,CACXvD,MAAOW,EAAOX,QACdmB,IAAKR,EAAOQ,MACZlC,KAAM0B,EAAO1B,OACbO,QAASmB,EAAOnB,eAKf,CACLkD,cAAec,KAAKC,UAAUjB,K,EAIlCkB,SAAA,SAASC,GAAG,WACVA,EAAEC,iBAEFrF,KAAK6E,SAAU,EAEf7E,KAAKN,MAAMwE,KACRoB,KAAKtF,KAAK+E,OAAQ,CAAEQ,aAAcvF,KAAKkB,QAAQ8B,KAAKhD,QACpDwF,KAAKxF,KAAKyF,KAAKzC,KAAKhD,OACpBwF,KAAKE,EAAE,QAAQC,QAAQ,uBAAwB,CAAC3F,KAAK+E,OAAOZ,iBAH/D,OAIS,WACL,EAAKU,SAAU,EACfhB,EAAEC,a,EAIRY,gBAAA,WAAkB,WAChB1E,KAAKqE,mBAAmBrE,KAAKiE,QAAQG,QAErCP,EAAEC,SAEF4B,EAAE,YAAYE,OAAM,WAClBF,EAAE,iBAAgB,EAAKzB,QAAQG,OAAS,IAAKyB,gB,EAIjDlB,gBAAA,WAAkB,WACVmB,EAAS9F,KAAKiE,QAAQG,OAAS,EAErCsB,EAAE,gBAAgBI,GAAUC,QAAQ,UAAU,WAC5C,EAAK9B,QAAQ+B,OAAOF,EAAQ,GAC5BjC,EAAEC,a,EAINO,mBAAA,SAAmBvG,EAAKsE,QAAe,IAAfA,IAAAA,EAAS,MACjB,MAAVA,GACFpC,KAAKiE,QAAQnG,GAAO,GACpBkC,KAAKiE,QAAQnG,GAAK4D,MAAQuE,GAAAA,CAAOnI,GACjCkC,KAAKiE,QAAQnG,GAAKmD,QAAUgF,GAAAA,CAAO,QACnCjG,KAAKiE,QAAQnG,GAAK2D,MAAQwE,GAAAA,CAAO,IACjCjG,KAAKiE,QAAQnG,GAAK8E,IAAMqD,GAAAA,CAAO,IAC/BjG,KAAKiE,QAAQnG,GAAK4C,KAAOuF,GAAAA,CAAO,kBAEhCjG,KAAKiE,QAAQnG,GAAO,GACpBkC,KAAKiE,QAAQnG,GAAK4D,MAAQuE,GAAAA,CAAOnI,GACjCkC,KAAKiE,QAAQnG,GAAKmD,QAAUgF,GAAAA,CAAO7D,EAAOnB,SAC1CjB,KAAKiE,QAAQnG,GAAK2D,MAAQwE,GAAAA,CAAO7D,EAAOX,OACxCzB,KAAKiE,QAAQnG,GAAK8E,IAAMqD,GAAAA,CAAO7D,EAAOQ,KACtC5C,KAAKiE,QAAQnG,GAAK4C,KAAOuF,GAAAA,CAAO7D,EAAO1B,Q,EAhIxBsD,CAA2BkC,KCKhD7D,IAAAA,aAAAA,IAAqB,qBAAqB,WACxC8D,IAAAA,UAAAA,cAA+BC,IAAAA,UAAgB,iBAAiB,SAAC3F,GAAD,OAASwE,KAAKoB,MAAM5F,GAAO,SAC3F0F,IAAAA,UAAAA,qBAAsCC,IAAAA,UAAgB,wBACtDD,IAAAA,UAAAA,qBAAsCC,IAAAA,UAAgB,yBAEtDE,EAAAA,EAAAA,QAAOC,IAAAA,UAAoB,aAAa,SAAUlG,GAAO,WACjD6D,EAAOlE,KAAKN,MAAMwE,KAExB,GAAKA,EAAKsC,uBAAV,CAIAxG,KAAKyG,QAAUvC,EAAKwC,uBACpB1G,KAAKiE,QAAUjE,KAAKN,MAAMwE,KAAKC,gBAE/B,IAAMwC,EAAa,IAAItF,KAEnBrB,KAAKiE,QAAQG,QACfpE,KAAKiE,QAAQlC,SAAQ,SAACK,EAAQV,GAC5B,GAAIU,GAAUA,EAAOX,OAASW,EAAO1B,MAAQ0B,EAAOQ,IAAK,SACnDgE,EAAc,GACdhH,EAAkBkB,GAAAA,GAAS,uBACXsB,EAAO1B,KADI,IACIgB,EADJ,gBACyBA,IAAU,EADnC,EAE7B,2BAA2C,iBAAhBU,EAAO1B,KAFL,IAKX,YAAhB0B,EAAO1B,MAAsC,iBAAhB0B,EAAO1B,OAClC2B,IAAAA,MAAAA,UAAoB,6CACtBuE,EAAc,CACZC,gBAAiB,QAAQzE,EAAOnB,QAAjB,KACf6F,eAAgB,MAChBC,mBAAoB,SACpBC,iBAAkB,aAGpBpH,GAAmB,iBAIvB+G,EAAWrF,IAAX,eACiBI,EACf,OAAGuF,KAAM7E,EAAOQ,IAAKsE,OAAO,SAASC,IAAI,gCACtCC,IAAAA,UAAgB,CACfzH,UAAWmB,GAAAA,EAAS,OAAIlB,IAAkB,EAAtB,EAA4B,yBAAyB,EAAKyH,SAA1D,IACpB9E,KAAM,SACN7B,KAAM0B,EAAO1B,KACb4G,MAAOlF,EAAOX,MACdE,MAAOiF,UAOb5G,KAAKyG,SACPE,EAAWrF,IACT,yBACA8F,IAAAA,UAAgB,CACd7E,KAAM,yBACN7B,KAAM,aACN4G,MAAOjF,IAAAA,WAAAA,MAAqB,qCAC5Bd,QAAS,WACPc,IAAAA,MAAAA,KAAe2B,EAAoB,CAAEE,KAAM,EAAKxE,MAAMwE,WAGzD,IAGIlE,KAAKyG,SACdE,EAAWrF,IACT,yBACA8F,IAAAA,UAAgB,CACd7E,KAAM,8BACN7B,KAAM,cACN4G,MAAOjF,IAAAA,WAAAA,MAAqB,oCAC5Bd,QAAS,WACPc,IAAAA,MAAAA,KAAe2B,EAAoB,CAAEE,KAAM,EAAKxE,MAAMwE,WAGzD,GAIDyC,EAAWrG,UAAU8D,OAAS,GAChC/D,EAAMiB,IAAI,mBAAoBqF,EAAWrG,UAAW,Y","sources":["webpack://@fof/socialprofile/webpack/bootstrap","webpack://@fof/socialprofile/webpack/runtime/compat get default export","webpack://@fof/socialprofile/webpack/runtime/define property getters","webpack://@fof/socialprofile/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/socialprofile/webpack/runtime/make namespace object","webpack://@fof/socialprofile/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/socialprofile/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/socialprofile/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/utils/withAttr']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/socialprofile/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/socialprofile/./src/forum/components/IconSelectorComponent.js","webpack://@fof/socialprofile/./src/forum/components/WebsiteInputComponent.js","webpack://@fof/socialprofile/./src/forum/helpers/isValidUrl.js","webpack://@fof/socialprofile/./src/forum/helpers/extractUriHost.js","webpack://@fof/socialprofile/./src/forum/components/SocialButtonsModal.js","webpack://@fof/socialprofile/./src/forum/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/withAttr'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","import Dropdown from 'flarum/common/components/Dropdown';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport icon from 'flarum/common/helpers/icon';\nimport classList from 'flarum/common/utils/classList';\n\nexport default class IconSelectorComponent extends Dropdown {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n attrs.className = 'icondropdown';\n attrs.buttonClassName = 'Button Button--icon';\n attrs.menuClassName = 'social-dropdown-menu';\n }\n\n oninit(vnode) {\n super.oninit(vnode);\n\n this.icons = {\n social: [\n 'fas fa-envelope',\n 'fas fa-globe',\n 'fab fa-amazon',\n 'fab fa-angellist',\n 'fab fa-apple',\n 'fab fa-behance',\n 'fab fa-bitbucket',\n 'fab fa-codepen',\n 'fab fa-connectdevelop',\n 'fab fa-dashcube',\n 'fab fa-delicious',\n 'fab fa-deviantart',\n 'fab fa-digg',\n 'fab fa-discord',\n 'fab fa-dribbble',\n 'fab fa-dropbox',\n 'fab fa-drupal',\n 'fab fa-facebook',\n 'fab fa-flickr',\n 'fab fa-foursquare',\n 'fab fa-get-pocket',\n 'fab fa-git',\n 'fab fa-github',\n 'fab fa-github-alt',\n 'fab fa-google',\n 'fab fa-google-plus',\n 'fab fa-google-wallet',\n 'fab fa-hacker-news',\n 'fab fa-instagram',\n 'fab fa-ioxhost',\n 'fab fa-joomla',\n 'fab fa-jsfiddle',\n 'fab fa-lastfm',\n 'fab fa-leanpub',\n 'fab fa-linkedin',\n 'fab fa-mastodon',\n 'fab fa-medium',\n 'fab fa-odnoklassniki',\n 'fab fa-opencart',\n 'fab fa-pagelines',\n 'fab fa-paypal',\n 'fab fa-pied-piper-alt',\n 'fab fa-pinterest-p',\n 'fab fa-playstation',\n 'fab fa-qq',\n 'fab fa-reddit',\n 'fab fa-renren',\n 'fab fa-sellsy',\n 'fas fa-share-alt',\n 'fab fa-shirtsinbulk',\n 'fab fa-simplybuilt',\n 'fab fa-skyatlas',\n 'fab fa-skype',\n 'fab fa-slack',\n 'fab fa-slideshare',\n 'fab fa-soundcloud',\n 'fab fa-spotify',\n 'fab fa-stack-exchange',\n 'fab fa-stack-overflow',\n 'fab fa-steam',\n 'fab fa-stumbleupon',\n 'fab fa-telegram',\n 'fab fa-tencent-weibo',\n 'fab fa-trello',\n 'fab fa-tripadvisor',\n 'fab fa-tumblr',\n 'fab fa-twitch',\n 'fab fa-twitter',\n 'fab fa-viacoin',\n 'fab fa-vimeo',\n 'fab fa-vine',\n 'fab fa-vk',\n 'fab fa-weibo',\n 'fab fa-weixin',\n 'fab fa-whatsapp',\n 'fab fa-wordpress',\n 'fab fa-xbox',\n 'fab fa-xing',\n 'fab fa-y-combinator',\n 'fab fa-yandex',\n 'fab fa-yandex-international',\n 'fab fa-yelp',\n 'fab fa-youtube',\n ],\n };\n }\n\n view(vnode) {\n vnode.children = this.items().toArray();\n\n return super.view(vnode);\n }\n\n getButtonContent() {\n const ic = (str) => icon(str, { className: 'icondropdown-activeIcon fa-fw' });\n\n return [\n /^favicon(-\\w+)?$/.test(this.attrs.selection())\n ? this.attrs.allowsExternal\n ? [\n {\n this.attrs.favicon('none');\n this.select(this.icons.social[0]);\n }}\n />,\n ]\n : ic('fas fa-globe')\n : ic(this.attrs.selection()),\n this.attrs.caretIcon ? icon(this.attrs.caretIcon, { className: 'Button-caret' }) : '',\n ];\n }\n\n items() {\n const items = new ItemList();\n\n if (this.attrs.favicon() !== 'none' && this.attrs.allowsExternal) {\n items.add(\n 'favicon',\n this.select('favicon')}\n role=\"button\"\n className={classList({\n 'iconpicker-item': true,\n 'iconpicker-item--highlighted': this.attrs.selection() === 'favicon',\n })}\n title=\"Favicon\"\n >\n \n ,\n 102\n );\n\n items.add(\n 'favicon-grey',\n this.select('favicon-grey')}\n role=\"button\"\n className={classList({\n 'iconpicker-item iconpicker-item--invertColors': true,\n 'iconpicker-item--highlighted': this.attrs.selection() === 'favicon-grey',\n })}\n title=\"Grey Favicon\"\n >\n \n ,\n 101\n );\n }\n\n this.icons.social.forEach((curIcon) => {\n items.add(\n curIcon.replace(/ /, '-'),\n this.select(curIcon)}\n className={classList({ 'iconpicker-item': true, 'iconpicker-item--highlighted': this.attrs.selection() === curIcon })}\n role=\"button\"\n title={`.${curIcon}`}\n >\n {icon(curIcon, { className: 'social-icon fa-fw' })}\n ,\n 100\n );\n });\n\n return items;\n }\n\n select(icon) {\n this.attrs.selection(icon);\n }\n}\n","import app from 'flarum/forum/app';\nimport Component from 'flarum/common/Component';\nimport withAttr from 'flarum/common/utils/withAttr';\nimport extractUriHost from '../helpers/extractUriHost';\nimport isValidUrl from '../helpers/isValidUrl';\nimport IconSelectorComponent from './IconSelectorComponent';\n\nexport default class WebsiteInputComponent extends Component {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.button = this.attrs.button;\n\n this.allowsExternal = app.forum.attribute('fof-socialprofile.allow_external_favicons');\n }\n\n view(vnode) {\n return (\n
\n \n\n {IconSelectorComponent.component({\n selection: this.button.icon,\n favicon: this.button.favicon,\n index: this.button.index,\n allowsExternal: this.allowsExternal,\n })}\n\n \n\n \n\n \n
\n );\n }\n\n onUrlChange(value) {\n this.button.url(value);\n\n if (!this.allowsExternal) {\n return;\n }\n\n clearTimeout(this.waitUntilFinished);\n\n if (this.button.icon() !== 'fas fa-circle-notch fa-spin') {\n this.button.icon('fas fa-circle-notch fa-spin');\n this.button.favicon('none');\n }\n\n this.waitUntilFinished = setTimeout(() => {\n if (isValidUrl(this.button.url())) {\n const iconurl = `https://icons.duckduckgo.com/ip3/${extractUriHost(this.button.url())}.ico`;\n\n this.button.favicon(iconurl);\n this.button.icon('favicon');\n\n m.redraw();\n } else {\n this.button.icon('fas fa-globe');\n this.button.favicon('none');\n m.redraw();\n }\n }, 1000);\n }\n}\n","/**\n * Verifies if a string is a valid URL (http/https only).\n *\n * @param {string} url URL to test\n */\nexport default function isValidUrl(url) {\n let urlInstance;\n\n try {\n urlInstance = new URL(url);\n } catch (_) {\n return false;\n }\n\n return ['http:', 'https:'].includes(urlInstance.protocol);\n}\n","/**\n * Extracts the host of a specified URI. Returns `null` if the URL is invalid.\n *\n * @example\n * // www.google.com\n * extractBaseUrl(\"https://www.google.com/search?q=flarum\")\n *\n * @example\n * // discuss.flarum.org\n * extractBaseUrl(\"https://discuss.flarum.org/u/admin\")\n *\n * @example\n * // null\n * extractBaseUrl(\"javascript:alert('hello!')\")\n *\n * @param {string|null} url URL to extract base from\n */\nexport default function extractUriHost(url) {\n let urlInstance;\n\n try {\n urlInstance = new URL(url);\n } catch (_) {\n return null;\n }\n\n if (['http:', 'https:'].includes(urlInstance.protocol)) {\n return urlInstance.host;\n }\n\n return null;\n}\n","import app from 'flarum/forum/app';\nimport Modal from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport WebsiteInputComponent from './WebsiteInputComponent';\n\nexport default class SocialButtonsModal extends Modal {\n oninit(vnode) {\n super.oninit(vnode);\n\n this.buttons = [];\n const buttons = this.attrs.user.socialButtons();\n\n if (buttons.length) {\n buttons.forEach((button, index) => {\n if (button && button.title) {\n this.createButtonObject(index, button);\n }\n });\n } else {\n this.createButtonObject(0);\n }\n }\n\n className() {\n return 'SocialButtonsModal Modal--small';\n }\n\n title() {\n return app.translator.trans('fof-socialprofile.forum.edit.headtitle');\n }\n\n content() {\n const areAnyIconsBeingFetched = this.buttons.some((button) => button.icon() === 'fas fa-circle-notch fa-spin');\n\n return (\n
\n
\n {this.buttons.map((button) => WebsiteInputComponent.component({ button }))}\n\n
\n
\n \n
\n\n
\n \n
\n\n {Button.component(\n {\n type: 'submit',\n style: 'float: right;',\n className: 'Button Button--primary EditSocialButtons-save',\n loading: this.loading,\n // Disable save button if favicons are being fetched\n disabled: areAnyIconsBeingFetched,\n title: areAnyIconsBeingFetched ? app.translator.trans('fof-socialprofile.forum.edit.save_disabled_fetching_favicons') : null,\n },\n app.translator.trans('fof-socialprofile.forum.edit.submit')\n )}\n
\n
\n
\n );\n }\n\n data() {\n const buttons = [];\n\n this.buttons.forEach((button) => {\n if (button && button.title() && button.url()) {\n buttons.push({\n title: button.title(),\n url: button.url(),\n icon: button.icon(),\n favicon: button.favicon(),\n });\n }\n });\n\n return {\n socialButtons: JSON.stringify(buttons),\n };\n }\n\n onsubmit(e) {\n e.preventDefault();\n\n this.loading = true;\n\n this.attrs.user\n .save(this.data(), { errorHandler: this.onerror.bind(this) })\n .then(this.hide.bind(this))\n .then($('#app').trigger('refreshSocialButtons', [this.data().socialButtons]))\n .catch(() => {\n this.loading = false;\n m.redraw();\n });\n }\n\n addSocialButton() {\n this.createButtonObject(this.buttons.length);\n\n m.redraw();\n\n $('document').ready(() => {\n $(`#socialgroup-${this.buttons.length - 1}`).slideDown();\n });\n }\n\n delSocialButton() {\n const curdel = this.buttons.length - 1;\n\n $(`#socialgroup-${curdel}`).slideUp('normal', () => {\n this.buttons.splice(curdel, 1);\n m.redraw();\n });\n }\n\n createButtonObject(key, button = null) {\n if (button == null) {\n this.buttons[key] = {};\n this.buttons[key].index = Stream(key);\n this.buttons[key].favicon = Stream('none');\n this.buttons[key].title = Stream('');\n this.buttons[key].url = Stream('');\n this.buttons[key].icon = Stream('fas fa-globe');\n } else {\n this.buttons[key] = {};\n this.buttons[key].index = Stream(key);\n this.buttons[key].favicon = Stream(button.favicon);\n this.buttons[key].title = Stream(button.title);\n this.buttons[key].url = Stream(button.url);\n this.buttons[key].icon = Stream(button.icon);\n }\n }\n}\n","import app from 'flarum/forum/app';\nimport Model from 'flarum/common/Model';\nimport User from 'flarum/common/models/User';\nimport { extend } from 'flarum/common/extend';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport Badge from 'flarum/common/components/Badge';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport classList from 'flarum/common/utils/classList';\n\nimport SocialButtonsModal from './components/SocialButtonsModal';\n\napp.initializers.add('fof/socialprofile', () => {\n User.prototype.socialButtons = Model.attribute('socialButtons', (str) => JSON.parse(str || '[]'));\n User.prototype.canViewSocialProfile = Model.attribute('canViewSocialProfile');\n User.prototype.canEditSocialProfile = Model.attribute('canEditSocialProfile');\n\n extend(UserCard.prototype, 'infoItems', function (items) {\n const user = this.attrs.user;\n\n if (!user.canViewSocialProfile()) {\n return;\n }\n\n this.canEdit = user.canEditSocialProfile();\n this.buttons = this.attrs.user.socialButtons();\n\n const buttonList = new ItemList();\n\n if (this.buttons.length) {\n this.buttons.forEach((button, index) => {\n if (button && button.title && button.icon && button.url) {\n let buttonStyle = {};\n let buttonClassName = classList({\n [`social-button ${button.icon}-${index} social-icon-${index}`]: true,\n 'social-greyscale-button': button.icon === 'favicon-grey',\n });\n\n if (button.icon === 'favicon' || button.icon === 'favicon-grey') {\n if (app.forum.attribute('fof-socialprofile.allow_external_favicons')) {\n buttonStyle = {\n backgroundImage: `url(\"${button.favicon}\")`,\n backgroundSize: '60%',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n };\n } else {\n buttonClassName += ' fas fa-globe';\n }\n }\n\n buttonList.add(\n `social-icon-${index}`,\n \n {Badge.component({\n className: classList({ [buttonClassName]: true, 'social-icon--deleting': this.deleting }),\n type: `social`,\n icon: button.icon,\n label: button.title,\n style: buttonStyle,\n })}\n \n );\n }\n });\n\n if (this.canEdit) {\n buttonList.add(\n 'settings social-button',\n Badge.component({\n type: 'social social-settings',\n icon: 'fas fa-cog',\n label: app.translator.trans('fof-socialprofile.forum.edit.edit'),\n onclick: () => {\n app.modal.show(SocialButtonsModal, { user: this.attrs.user });\n },\n }),\n -1\n );\n }\n } else if (this.canEdit) {\n buttonList.add(\n 'settings social-button',\n Badge.component({\n type: 'social null-social-settings',\n icon: 'fas fa-plus',\n label: app.translator.trans('fof-socialprofile.forum.edit.add'),\n onclick: () => {\n app.modal.show(SocialButtonsModal, { user: this.attrs.user });\n },\n }),\n -1\n );\n }\n\n if (buttonList.toArray().length > 0) {\n items.add('fofsocialprofile', buttonList.toArray(), 20);\n }\n });\n});\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","p","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","IconSelectorComponent","initAttrs","attrs","className","buttonClassName","menuClassName","oninit","vnode","this","icons","social","view","children","items","toArray","getButtonContent","ic","str","icon","test","selection","allowsExternal","classList","alt","src","favicon","onerror","select","caretIcon","ItemList","add","onclick","role","title","index","style","width","height","margin","forEach","curIcon","replace","Dropdown","WebsiteInputComponent","button","app","id","type","placeholder","tabIndex","bidi","component","url","onchange","withAttr","onUrlChange","bind","clearTimeout","waitUntilFinished","setTimeout","urlInstance","URL","_","includes","protocol","isValidUrl","iconurl","host","extractUriHost","m","redraw","Component","SocialButtonsModal","buttons","user","socialButtons","length","createButtonObject","content","areAnyIconsBeingFetched","some","map","addSocialButton","delSocialButton","Button","loading","disabled","data","push","JSON","stringify","onsubmit","e","preventDefault","save","errorHandler","then","hide","$","trigger","ready","slideDown","curdel","slideUp","splice","Stream","Modal","User","Model","parse","extend","UserCard","canViewSocialProfile","canEdit","canEditSocialProfile","buttonList","buttonStyle","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","href","target","rel","Badge","deleting","label"],"sourceRoot":""} \ No newline at end of file