diff --git a/extensions/mentions/CHANGELOG.md b/extensions/mentions/CHANGELOG.md index 7f98a4a44..f8dfb03f6 100644 --- a/extensions/mentions/CHANGELOG.md +++ b/extensions/mentions/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [1.1.1](https://github.com/flarum/mentions/compare/v1.1.0...v1.1.1) + +### Fixed +- Broken autocompleted user mention format (https://github.com/flarum/mentions/pull/74) + ## [1.1.0](https://github.com/flarum/mentions/compare/v1.0.0...v1.1.0) ### Changed diff --git a/extensions/mentions/js/dist/forum.js b/extensions/mentions/js/dist/forum.js index 5a30adc32..c4b44f368 100644 --- a/extensions/mentions/js/dist/forum.js +++ b/extensions/mentions/js/dist/forum.js @@ -1,2 +1,2 @@ -module.exports=function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=36)}([function(t,e){t.exports=flarum.core.compat["common/extend"]},function(t,e){t.exports=flarum.core.compat.app},function(t,e){t.exports=flarum.core.compat.extend},function(t,e){t.exports=flarum.core.compat["utils/string"]},function(t,e){t.exports=flarum.core.compat["forum/components/CommentPost"]},function(t,e){t.exports=flarum.core.compat["forum/components/PostPreview"]},function(t,e){t.exports=flarum.core.compat["common/helpers/username"]},function(t,e){t.exports=flarum.core.compat["components/CommentPost"]},function(t,e){t.exports=flarum.core.compat["forum/components/EditPostComposer"]},function(t,e){t.exports=flarum.core.compat.Fragment},function(t,e){t.exports=flarum.core.compat["components/Notification"]},function(t,e){t.exports=flarum.core.compat["common/components/TextEditor"]},function(t,e){t.exports=flarum.core.compat["helpers/username"]},function(t,e){t.exports=flarum.core.compat["utils/extractText"]},,function(t,e){t.exports=flarum.core.compat["components/NotificationGrid"]},function(t,e){t.exports=flarum.core.compat["common/components/LoadingIndicator"]},function(t,e){t.exports=flarum.core.compat["common/Model"]},function(t,e){t.exports=flarum.core.compat["common/models/Post"]},function(t,e){t.exports=flarum.core.compat["common/components/Link"]},function(t,e){t.exports=flarum.core.compat["common/helpers/punctuateSeries"]},function(t,e){t.exports=flarum.core.compat["common/helpers/icon"]},function(t,e){t.exports=flarum.core.compat["components/Button"]},function(t,e){t.exports=flarum.core.compat["forum/utils/DiscussionControls"]},function(t,e){t.exports=flarum.core.compat["helpers/icon"]},function(t,e){t.exports=flarum.core.compat["common/components/TextEditorButton"]},function(t,e){t.exports=flarum.core.compat["forum/components/ReplyComposer"]},function(t,e){t.exports=flarum.core.compat["common/helpers/avatar"]},function(t,e){t.exports=flarum.core.compat["common/helpers/highlight"]},function(t,e){t.exports=flarum.core.compat["forum/utils/KeyboardNavigatable"]},function(t,e){t.exports=flarum.core.compat["common/utils/string"]},function(t,e){t.exports=flarum.core.compat["common/utils/throttleDebounce"]},function(t,e){t.exports=flarum.core.compat["components/UserPage"]},function(t,e){t.exports=flarum.core.compat["components/LinkButton"]},function(t,e){t.exports=flarum.core.compat["components/PostsUserPage"]},,function(t,e,n){"use strict";n.r(e),n.d(e,"filterUserMentions",(function(){return jt})),n.d(e,"filterPostMentions",(function(){return Ot}));var o=n(2),r=n(1),s=n.n(r),i=n(15),a=n.n(i),u=n(3),c=n(0),p=n(4),f=n.n(p),l=n(5),d=n.n(l),h=n(16),v=n.n(h);var b=n(17),y=n.n(b),g=n(18),x=n.n(g),w=n(19),P=n.n(w),C=n(20),_=n.n(C),M=n(6),T=n.n(M),j=n(21),O=n.n(j);var B=n(22),A=n.n(B),k=n(7),H=n.n(k),S=n(23),N=n.n(S),I=n(8),D=n.n(I),E=function(){return app.translator.trans("core.lib.username.deleted_text")};function W(t,e){return void 0===e&&(e=!0),t?((e?t.displayName():t.username())||E()).replace(/"#[a-z]{0,3}[0-9]+/,"_"):E().replace(/"#[a-z]{0,3}[0-9]+/,"_")}function L(t,e){return void 0===e?app.forum.attribute("allowUsernameMentionFormat")?"@"+W(t,!1):'@"'+W(t)+'"'+t.id():'@"'+W(t)+'"#p'+e}function U(t,e,n){var o=L(t.user(),t.id())+" ";e.fields.content()||(e.body.attrs.originalContent=o);var r=e.editor.getSelectionRange()[0],s=e.fields.content().slice(0,r),i=0==s.length?0:3-s.match(/(\n{0,2})$/)[0].length;e.editor.insertAtCursor(Array(i).join("\n")+(n?"> "+o+n.trim().replace(/\n/g,"\n> ")+"\n\n":o),!1)}function R(t,e){app.composer.bodyMatches(D.a)&&app.composer.body.attrs.post.discussion()===t.discussion()?U(t,app.composer,e):N.a.replyAction.call(t.discussion()).then((function(n){return U(t,n,e)}))}function q(t,e){return(q=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function J(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,q(t,e)}var z=n(9),F=n.n(z),X=n(24),Y=n.n(X),G=function(t){function e(e){var n;return(n=t.call(this)||this).post=e,n}J(e,t);var n=e.prototype;return n.view=function(){var t=this;return m("button",{class:"Button PostQuoteButton",onclick:function(){R(t.post,t.content)}},Y()("fas fa-quote-left",{className:"Button-icon"}),app.translator.trans("flarum-mentions.forum.post.quote_button"))},n.show=function(t,e){var n=this.$().show(),o=n.offsetParent().offset();n.css("left",t-o.left).css("top",e-o.top),this.hideHandler=this.hide.bind(this),$(document).on("mouseup",this.hideHandler)},n.showStart=function(t,e){var n=this.$();this.show(t,$(window).scrollTop()+e-n.outerHeight()-5)},n.showEnd=function(t,e){var n=this.$();this.show(t-n.outerWidth(),$(window).scrollTop()+e+5)},n.hide=function(){this.$().hide(),$(document).off("mouseup",this.hideHandler)},e}(F.a);function K(){Object(o.extend)(H.a.prototype,"oncreate",(function(){var t=this.attrs.post;if(!(t.isHidden()||app.session.user&&!t.discussion().canReply())){var e=this.$(".Post-body"),n=$('
'),o=new G(t),r=function(t){setTimeout((function(){var r=function(t){var e=window.getSelection();if(null!=e&&e.rangeCount){var n=e.getRangeAt(0),o=n.commonAncestorContainer;if(t[0]===o||$.contains(t[0],o)){var r=$("
").append(n.cloneContents());return r.find("img.emoji").replaceWith((function(){return this.alt})),r.find("img").replaceWith((function(){return"![]("+this.src+")"})),r.find("a").replaceWith((function(){return"["+this.innerText+"]("+this.href+")"})),r.text()}}return""}(e);if(r){o.content=r,m.render(n[0],o.render());var s=window.getSelection().getRangeAt(0).getClientRects(),i=s[0];if(t.clientY=o.length&&(r=0),this.index=r;var s=o.removeClass("active").eq(r).addClass("active");if(e){var i,a=n.scrollTop(),u=n.offset().top,c=u+n.outerHeight(),p=s.offset().top,f=p+s.outerHeight();pc&&(i=a-c+f+parseInt(n.css("padding-bottom"),10)),void 0!==i&&n.stop(!0).animate({scrollTop:i},100)}}},e}(F.a),mt=Object(pt.throttle)(250,(function(t,e,n,o,r,s){var i=t.toLowerCase();e.includes(i)||(app.store.find("users",{filter:{q:t},page:{limit:5}}).then((function(t){t.forEach((function(t){o.has(t.id())||(o.add(t.id()),n.push(t))})),s()})),e.push(i))}));function lt(){var t=$('
'),e=new ft;Object(c.extend)(V.a.prototype,"oncreate",(function(){var n=this.$(".TextEditor-editor").wrap('
');this.navigator=new ut.a,this.navigator.when((function(){return e.active})).onUp((function(){return e.navigate(-1)})).onDown((function(){return e.navigate(1)})).onSelect(e.complete.bind(e)).onCancel(e.hide.bind(e)).bindTo(n),n.after(t)})),Object(c.extend)(V.a.prototype,"buildEditorParams",(function(n){var o,r,s,i,a=[],u=Array.from(app.store.all("users")),c=new Set(u.map((function(t){return t.id()})));n.inputListeners.push((function(){var n=app.composer.editor.getSelectionRange(),p=n[0];if(!(n[1]-p>0)){var f=app.composer.editor.getLastNChars(30);r=0;for(var l=f.length-1;l>=0;l--){if("@"===f.substr(l,1)&&(0==l||/\s/.test(f.substr(l-1,1)))){o=l+1,r=p-f.length+l+1;break}}if(e.hide(),e.active=!1,r){s=f.substring(o).toLowerCase(),i=s.match(/^["|“]((?:(?!"#).)+)$/),s=i&&i[1]||s;var d=function(t,n,o,i){void 0===i&&(i="");var a=T()(t);return s&&(a.children=[it()(a.text,s)],delete a.text),m("button",{className:"PostPreview "+i,onclick:function(){return function(t){app.composer.editor.replaceBeforeCursor(r-1,t+" "),e.hide()}(n)},onmouseenter:function(){e.setIndex($(this).parent().index())}},m("span",{className:"PostPreview-content"},rt()(t),a," ",o))},h=function(t){return[t.username(),t.displayName()].some((function(t){return t.toLowerCase().substr(0,s.length)===s}))},v=function(){var n=[];if(s&&u.forEach((function(t){h(t)&&n.push(d(t,L(t),"","MentionsDropdown-user"))})),app.composer.bodyMatches(nt.a)||app.composer.bodyMatches(D.a)){var o=app.composer.body.attrs,i=o.post,a=i&&i.discussion()||o.discussion;a&&a.posts().filter((function(t){return t&&"comment"===t.contentType()&&(!i||t.number()l.height()&&(b=c.top-f-15),v+p>l.width()&&(v=l.width()-p),b=Math.max(-(l.offset().top-$(document).scrollTop()),b),v=Math.max(-l.offset().left,v),e.show(v,b)}else e.active=!1,e.hide()};e.active=!0,v(),e.setIndex(0),e.$().scrollTop(0),s.length>1&&mt(s,a,u,c,e,v)}}}))})),Object(c.extend)(V.a.prototype,"toolbarItems",(function(t){var e=this;t.add("mention",m(tt.a,{onclick:function(){return e.attrs.composer.editor.insertAtCursor(" @")},icon:"fas fa-at"},app.translator.trans("flarum-mentions.forum.composer.mention_tooltip")))}))}var dt=n(10),ht=n.n(dt),vt=function(t){function e(){return t.apply(this,arguments)||this}J(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-reply"},n.href=function(){var t=this.attrs.notification,e=t.subject(),n=t.content();return app.route.discussion(e.discussion(),n&&n.replyNumber)},n.content=function(){var t=this.attrs.notification.fromUser();return app.translator.trans("flarum-mentions.forum.notifications.post_mentioned_text",{user:t,count:1})},n.excerpt=function(){return Object(u.truncate)(this.attrs.notification.subject().contentPlain(),200)},e}(ht.a),bt=function(t){function e(){return t.apply(this,arguments)||this}J(e,t);var n=e.prototype;return n.icon=function(){return"fas fa-at"},n.href=function(){var t=this.attrs.notification.subject();return app.route.discussion(t.discussion(),t.number())},n.content=function(){var t=this.attrs.notification.fromUser();return app.translator.trans("flarum-mentions.forum.notifications.user_mentioned_text",{user:t})},n.excerpt=function(){return Object(u.truncate)(this.attrs.notification.subject().contentPlain(),200)},e}(ht.a),yt=n(32),gt=n.n(yt),xt=n(33),wt=n.n(xt),Pt=n(34),$t=function(t){function e(){return t.apply(this,arguments)||this}return J(e,t),e.prototype.loadResults=function(t){return app.store.find("posts",{filter:{type:"comment",mentioned:this.user.id()},page:{offset:t,limit:this.loadLimit},sort:"-createdAt"})},e}(n.n(Pt).a),Ct=n(12),_t=n.n(Ct),Mt=n(13),Tt=n.n(Mt);function jt(t){var e;if(app.forum.attribute("allowUsernameMentionFormat")&&t.hasAttribute("username")?e=app.store.getBy("users","username",t.getAttribute("username")):t.hasAttribute("id")&&(e=app.store.getById("users",t.getAttribute("id"))),e)return t.setAttribute("id",e.id()),t.setAttribute("slug",e.slug()),t.setAttribute("displayname",Tt()(_t()(e))),!0;t.invalidate()}function Ot(t){var e=app.store.getById("posts",t.getAttribute("id"));if(e)return t.setAttribute("discussionid",e.discussion().id()),t.setAttribute("number",e.number()),t.setAttribute("displayname",Tt()(_t()(e.user()))),!0}s.a.initializers.add("flarum-mentions",(function(){!function(){function t(){var t=this.attrs.post.contentHtml();if(t!==this.oldPostContentHtml&&!this.isEditing()){this.oldPostContentHtml=t;var e=this.attrs.post,n=this.$();this.$().on("click",".UserMention:not(.UserMention--deleted), .PostMention:not(.PostMention--deleted)",(function(t){m.route.set(this.getAttribute("href")),t.preventDefault()})),this.$(".PostMention:not(.PostMention--deleted)").each((function(){var t,o=$(this),r=o.data("id"),s=$('