summaryrefslogtreecommitdiffstats
path: root/apps/comments
diff options
context:
space:
mode:
authordependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>2019-08-11 14:27:48 +0000
committernpmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>2019-08-11 17:43:33 +0000
commit723815f081a79b23c7daa1fc164152eb79525d94 (patch)
treecbcd47d22dc724784dcbedfc00a2657ce543ff89 /apps/comments
parent7b8ddd7e958bfbf7dbddf38aca2c789310e3d1a4 (diff)
downloadnextcloud-server-723815f081a79b23c7daa1fc164152eb79525d94.tar.gz
nextcloud-server-723815f081a79b23c7daa1fc164152eb79525d94.zip
Bump style-loader from 0.23.1 to 1.0.0
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 0.23.1 to 1.0.0. - [Release notes](https://github.com/webpack-contrib/style-loader/releases) - [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
Diffstat (limited to 'apps/comments')
-rw-r--r--apps/comments/js/comments.js2
-rw-r--r--apps/comments/js/comments.js.map2
2 files changed, 2 insertions, 2 deletions
diff --git a/apps/comments/js/comments.js b/apps/comments/js/comments.js
index 717394d1f30..98f67937adc 100644
--- a/apps/comments/js/comments.js
+++ b/apps/comments/js/comments.js
@@ -1,2 +1,2 @@
-!function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}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 i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));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="/js/",n(n.s=3)}([function(t,e){t.exports=jQuery},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",o=t[3];if(!o)return n;if(e&&"function"==typeof btoa){var i=(r=o,s=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(l," */")),a=o.sources.map(function(t){return"/*# sourceURL=".concat(o.sourceRoot).concat(t," */")});return[n].concat(a).concat([i]).join("\n")}var r,s,l;return[n].join("\n")}(e,t);return e[2]?"@media ".concat(e[2],"{").concat(n,"}"):n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},i=0;i<this.length;i++){var a=this[i][0];null!=a&&(o[a]=!0)}for(var r=0;r<t.length;r++){var s=t[r];null!=s[0]&&o[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="(".concat(s[2],") and (").concat(n,")")),e.push(s))}},e}},function(t,e,n){var o,i,a={},r=(o=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===i&&(i=o.apply(this,arguments)),i}),s=function(t){var e={};return function(t,n){if("function"==typeof t)return t();if(void 0===e[t]){var o=function(t,e){return e?e.querySelector(t):document.querySelector(t)}.call(this,t,n);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(t){o=null}e[t]=o}return e[t]}}(),l=null,c=0,m=[],u=n(18);function d(t,e){for(var n=0;n<t.length;n++){var o=t[n],i=a[o.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](o.parts[r]);for(;r<o.parts.length;r++)i.parts.push(y(o.parts[r],e))}else{var s=[];for(r=0;r<o.parts.length;r++)s.push(y(o.parts[r],e));a[o.id]={id:o.id,refs:1,parts:s}}}}function h(t,e){for(var n=[],o={},i=0;i<t.length;i++){var a=t[i],r=e.base?a[0]+e.base:a[0],s={css:a[1],media:a[2],sourceMap:a[3]};o[r]?o[r].parts.push(s):n.push(o[r]={id:r,parts:[s]})}return n}function p(t,e){var n=s(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=m[m.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),m.push(e);else if("bottom"===t.insertAt)n.appendChild(e);else{if("object"!=typeof t.insertAt||!t.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var i=s(t.insertAt.before,n);n.insertBefore(e,i)}}function f(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=m.indexOf(t);e>=0&&m.splice(e,1)}function g(t){var e=document.createElement("style");if(void 0===t.attrs.type&&(t.attrs.type="text/css"),void 0===t.attrs.nonce){var o=function(){0;return n.nc}();o&&(t.attrs.nonce=o)}return v(e,t.attrs),p(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function y(t,e){var n,o,i,a;if(e.transform&&t.css){if(!(a="function"==typeof e.transform?e.transform(t.css):e.transform.default(t.css)))return function(){};t.css=a}if(e.singleton){var r=c++;n=l||(l=g(e)),o=b.bind(null,n,r,!1),i=b.bind(null,n,r,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",v(e,t.attrs),p(t,e),e}(e),o=function(t,e,n){var o=n.css,i=n.sourceMap,a=void 0===e.convertToAbsoluteUrls&&i;(e.convertToAbsoluteUrls||a)&&(o=u(o));i&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var r=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(r),s&&URL.revokeObjectURL(s)}.bind(null,n,e),i=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=g(e),o=function(t,e){var n=e.css,o=e.media;o&&t.setAttribute("media",o);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),i=function(){f(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else i()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=r()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=h(t,e);return d(n,e),function(t){for(var o=[],i=0;i<n.length;i++){var r=n[i];(s=a[r.id]).refs--,o.push(s)}t&&d(h(t,e),e);for(i=0;i<o.length;i++){var s;if(0===(s=o[i]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete a[s.id]}}}};var w,C=(w=[],function(t,e){return w[t]=e,w.filter(Boolean).join("\n")});function b(t,e,n,o){var i=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=C(e,i);else{var a=document.createTextNode(i),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(a,r[e]):t.appendChild(a)}}},function(t,e,n){"use strict";n.r(e);n(4),n(5),n(6),n(7),n(8),n(9),n(10),n(11),n(12),n(13),n(14),n(15),n(16),n(19);window.OCA.Comments=OCA.Comments},function(t,e){OCA.Comments||(OCA.Comments={})},function(t,e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o,i;o=Handlebars.template,(i=OCA.Comments.Templates=OCA.Comments.Templates||{}).comment=o({1:function(t,e,n,o,i){return" unread"},3:function(t,e,n,o,i){return" collapsed"},5:function(t,e,n,o,i){return" currentUser"},7:function(t,e,n,o,i){var a;return'data-username="'+t.escapeExpression("function"==typeof(a=null!=(a=n.actorId||(null!=e?e.actorId:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"actorId",hash:{},data:i}):a)+'"'},9:function(t,e,n,o,i){return'\t\t\t<a href="#" class="action more icon icon-more has-tooltip"></a>\n\t\t\t<div class="deleteLoading icon-loading-small hidden"></div>\n'},11:function(t,e,n,o,i){return'\t\t<div class="message-overlay"></div>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m="function",u=t.escapeExpression;return'<li class="comment'+(null!=(r=o.if.call(l,null!=e?e.isUnread:e,{name:"if",hash:{},fn:t.program(1,a,0),inverse:t.noop,data:a}))?r:"")+(null!=(r=o.if.call(l,null!=e?e.isLong:e,{name:"if",hash:{},fn:t.program(3,a,0),inverse:t.noop,data:a}))?r:"")+'" data-id="'+u(n(s=null!=(s=o.id||(null!=e?e.id:e))?s:c)===m?s.call(l,{name:"id",hash:{},data:a}):s)+'">\n\t<div class="authorRow">\n\t\t<div class="avatar'+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(5,a,0),inverse:t.noop,data:a}))?r:"")+'" '+(null!=(r=o.if.call(l,null!=e?e.actorId:e,{name:"if",hash:{},fn:t.program(7,a,0),inverse:t.noop,data:a}))?r:"")+'> </div>\n\t\t<div class="author'+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(5,a,0),inverse:t.noop,data:a}))?r:"")+'">'+u(n(s=null!=(s=o.actorDisplayName||(null!=e?e.actorDisplayName:e))?s:c)===m?s.call(l,{name:"actorDisplayName",hash:{},data:a}):s)+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(9,a,0),inverse:t.noop,data:a}))?r:"")+'\t\t<div class="date has-tooltip live-relative-timestamp" data-timestamp="'+u(n(s=null!=(s=o.timestamp||(null!=e?e.timestamp:e))?s:c)===m?s.call(l,{name:"timestamp",hash:{},data:a}):s)+'" title="'+u(n(s=null!=(s=o.altDate||(null!=e?e.altDate:e))?s:c)===m?s.call(l,{name:"altDate",hash:{},data:a}):s)+'">'+u(n(s=null!=(s=o.date||(null!=e?e.date:e))?s:c)===m?s.call(l,{name:"date",hash:{},data:a}):s)+'</div>\n\t</div>\n\t<div class="message">'+(null!=(r=n(s=null!=(s=o.formattedMessage||(null!=e?e.formattedMessage:e))?s:c)===m?s.call(l,{name:"formattedMessage",hash:{},data:a}):s)?r:"")+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isLong:e,{name:"if",hash:{},fn:t.program(11,a,0),inverse:t.noop,data:a}))?r:"")+"</li>\n"},useData:!0}),i.commentsmodifymenu=o({1:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m=t.escapeExpression;return'\t\t<li>\n\t\t\t<a href="#" class="menuitem action '+m("function"===n(s=null!=(s=o.name||(null!=e?e.name:e))?s:c)?s.call(l,{name:"name",hash:{},data:a}):s)+' permanent" data-action="'+m("function"===n(s=null!=(s=o.name||(null!=e?e.name:e))?s:c)?s.call(l,{name:"name",hash:{},data:a}):s)+'">\n'+(null!=(r=o.if.call(l,null!=e?e.iconClass:e,{name:"if",hash:{},fn:t.program(2,a,0),inverse:t.program(4,a,0),data:a}))?r:"")+"\t\t\t\t<span>"+m("function"===n(s=null!=(s=o.displayName||(null!=e?e.displayName:e))?s:c)?s.call(l,{name:"displayName",hash:{},data:a}):s)+"</span>\n\t\t\t</a>\n\t\t</li>\n"},2:function(t,e,n,o,i){var a;return'\t\t\t\t\t<span class="icon '+t.escapeExpression("function"==typeof(a=null!=(a=n.iconClass||(null!=e?e.iconClass:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"iconClass",hash:{},data:i}):a)+'"></span>\n'},4:function(t,e,n,o,i){return'\t\t\t\t\t<span class="no-icon"></span>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,n,o,i){var a;return"<ul>\n"+(null!=(a=n.each.call(null!=e?e:t.nullContext||{},null!=e?e.items:e,{name:"each",hash:{},fn:t.program(1,i,0),inverse:t.noop,data:i}))?a:"")+"</ul>\n"},useData:!0}),i.edit_comment=o({1:function(t,e,n,o,i){var a;return'\t\t\t<div class="action-container">\n\t\t\t\t<a href="#" class="action cancel icon icon-close has-tooltip" title="'+t.escapeExpression("function"==typeof(a=null!=(a=n.cancelText||(null!=e?e.cancelText:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"cancelText",hash:{},data:i}):a)+'"></a>\n\t\t\t</div>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m="function",u=t.escapeExpression;return"<"+u(n(s=null!=(s=o.tag||(null!=e?e.tag:e))?s:c)===m?s.call(l,{name:"tag",hash:{},data:a}):s)+' class="newCommentRow comment" data-id="'+u(n(s=null!=(s=o.id||(null!=e?e.id:e))?s:c)===m?s.call(l,{name:"id",hash:{},data:a}):s)+'">\n\t<div class="authorRow">\n\t\t<div class="avatar currentUser" data-username="'+u(n(s=null!=(s=o.actorId||(null!=e?e.actorId:e))?s:c)===m?s.call(l,{name:"actorId",hash:{},data:a}):s)+'"></div>\n\t\t<div class="author currentUser">'+u(n(s=null!=(s=o.actorDisplayName||(null!=e?e.actorDisplayName:e))?s:c)===m?s.call(l,{name:"actorDisplayName",hash:{},data:a}):s)+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isEditMode:e,{name:"if",hash:{},fn:t.program(1,a,0),inverse:t.noop,data:a}))?r:"")+'\t</div>\n\t<form class="newCommentForm">\n\t\t<div contentEditable="true" class="message" data-placeholder="'+u(n(s=null!=(s=o.newMessagePlaceholder||(null!=e?e.newMessagePlaceholder:e))?s:c)===m?s.call(l,{name:"newMessagePlaceholder",hash:{},data:a}):s)+'">'+u(n(s=null!=(s=o.message||(null!=e?e.message:e))?s:c)===m?s.call(l,{name:"message",hash:{},data:a}):s)+'</div>\n\t\t<input class="submit icon-confirm has-tooltip" type="submit" value="" title="'+u(n(s=null!=(s=o.submitText||(null!=e?e.submitText:e))?s:c)===m?s.call(l,{name:"submitText",hash:{},data:a}):s)+'"/>\n\t\t<div class="submitLoading icon-loading-small hidden"></div>\n\t</form>\n</'+u(n(s=null!=(s=o.tag||(null!=e?e.tag:e))?s:c)===m?s.call(l,{name:"tag",hash:{},data:a}):s)+">\n"},useData:!0}),i.filesplugin=o({compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s=null!=e?e:t.nullContext||{},l=o.helperMissing,c=t.escapeExpression;return'<a class="action action-comment permanent" title="'+c("function"===n(r=null!=(r=o.countMessage||(null!=e?e.countMessage:e))?r:l)?r.call(s,{name:"countMessage",hash:{},data:a}):r)+'" href="#">\n\t<img class="svg" src="'+c("function"===n(r=null!=(r=o.iconUrl||(null!=e?e.iconUrl:e))?r:l)?r.call(s,{name:"iconUrl",hash:{},data:a}):r)+'"/>\n</a>\n'},useData:!0}),i.view=o({compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s=null!=e?e:t.nullContext||{},l=o.helperMissing,c=t.escapeExpression;return'<ul class="comments">\n</ul>\n<div class="emptycontent hidden"><div class="icon-comment"></div>\n\t<p>'+c("function"===n(r=null!=(r=o.emptyResultLabel||(null!=e?e.emptyResultLabel:e))?r:l)?r.call(s,{name:"emptyResultLabel",hash:{},data:a}):r)+'</p></div>\n<input type="button" class="showMore hidden" value="'+c("function"===n(r=null!=(r=o.moreLabel||(null!=e?e.moreLabel:e))?r:l)?r.call(s,{name:"moreLabel",hash:{},data:a}):r)+'" name="show-more" id="show-more" />\n<div class="loading hidden" style="height: 50px"></div>\n'},useData:!0})},function(t,e){!function(t,e){_.extend(t.Files.Client,{PROPERTY_FILEID:"{"+t.Files.Client.NS_OWNCLOUD+"}id",PROPERTY_MESSAGE:"{"+t.Files.Client.NS_OWNCLOUD+"}message",PROPERTY_ACTORTYPE:"{"+t.Files.Client.NS_OWNCLOUD+"}actorType",PROPERTY_ACTORID:"{"+t.Files.Client.NS_OWNCLOUD+"}actorId",PROPERTY_ISUNREAD:"{"+t.Files.Client.NS_OWNCLOUD+"}isUnread",PROPERTY_OBJECTID:"{"+t.Files.Client.NS_OWNCLOUD+"}objectId",PROPERTY_OBJECTTYPE:"{"+t.Files.Client.NS_OWNCLOUD+"}objectType",PROPERTY_ACTORDISPLAYNAME:"{"+t.Files.Client.NS_OWNCLOUD+"}actorDisplayName",PROPERTY_CREATIONDATETIME:"{"+t.Files.Client.NS_OWNCLOUD+"}creationDateTime",PROPERTY_MENTIONS:"{"+t.Files.Client.NS_OWNCLOUD+"}mentions"});var n=t.Backbone.Model.extend({sync:t.Backbone.davSync,defaults:{actorType:"users",objectType:"files"},davProperties:{id:t.Files.Client.PROPERTY_FILEID,message:t.Files.Client.PROPERTY_MESSAGE,actorType:t.Files.Client.PROPERTY_ACTORTYPE,actorId:t.Files.Client.PROPERTY_ACTORID,actorDisplayName:t.Files.Client.PROPERTY_ACTORDISPLAYNAME,creationDateTime:t.Files.Client.PROPERTY_CREATIONDATETIME,objectType:t.Files.Client.PROPERTY_OBJECTTYPE,objectId:t.Files.Client.PROPERTY_OBJECTID,isUnread:t.Files.Client.PROPERTY_ISUNREAD,mentions:t.Files.Client.PROPERTY_MENTIONS},parse:function(t){return{id:t.id,message:t.message,actorType:t.actorType,actorId:t.actorId,actorDisplayName:t.actorDisplayName,creationDateTime:t.creationDateTime,objectType:t.objectType,objectId:t.objectId,isUnread:"true"===t.isUnread,mentions:this._parseMentions(t.mentions)}},_parseMentions:function(t){if(_.isUndefined(t))return{};var e={};for(var n in t){var o=t[n];if(!_.isUndefined(o.localName)&&"mention"===o.localName){e[n]={};for(var i=o.firstChild;i;i=i.nextSibling)!_.isUndefined(i.localName)&&i.localName.startsWith("mention")&&(e[n][i.localName]=i.textContent)}}return e}});e.Comments.CommentModel=n}(OC,OCA)},function(t,e){!function(t,e){var n=t.Backbone.Collection.extend({sync:t.Backbone.davSync,model:e.Comments.CommentModel,_objectType:"files",_objectId:null,_endReached:!1,_limit:20,initialize:function(t,e){(e=e||{}).objectType&&(this._objectType=e.objectType),e.objectId&&(this._objectId=e.objectId)},url:function(){return t.linkToRemote("dav")+"/comments/"+encodeURIComponent(this._objectType)+"/"+encodeURIComponent(this._objectId)+"/"},setObjectId:function(t){this._objectId=t},hasMoreResults:function(){return!this._endReached},reset:function(){return this._endReached=!1,this._summaryModel=null,t.Backbone.Collection.prototype.reset.apply(this,arguments)},fetchNext:function(t){var e=this;if(!this.hasMoreResults())return null;var o='<?xml version="1.0" encoding="utf-8" ?>\n<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n <oc:limit>'+(this._limit+1)+"</oc:limit>\n <oc:offset>"+this.length+"</oc:offset>\n</oc:filter-comments>\n",i=(t=t||{}).success;return t=_.extend({remove:!1,parse:!0,data:o,davProperties:n.prototype.model.prototype.davProperties,success:function(n){if(n.length<=e._limit?e._endReached=!0:n=_.initial(n),!e.set(n,t))return!1;i&&i.apply(null,arguments),e.trigger("sync","REPORT",e,t)}},t),this.sync("REPORT",this,t)},getSummaryModel:function(){return this._summaryModel||(this._summaryModel=new e.Comments.CommentSummaryModel({id:this._objectId,objectType:this._objectType})),this._summaryModel},updateReadMarker:function(t,e){return e=e||{},this.getSummaryModel().save({readMarker:(t||new Date).toUTCString()},e)}});e.Comments.CommentCollection=n}(OC,OCA)},function(t,e){!function(t,e){_.extend(t.Files.Client,{PROPERTY_READMARKER:"{"+t.Files.Client.NS_OWNCLOUD+"}readMarker"});var n=t.Backbone.Model.extend({sync:t.Backbone.davSync,_objectType:"files",_objectId:null,davProperties:{readMarker:t.Files.Client.PROPERTY_READMARKER},initialize:function(t,e){(e=e||{}).objectType&&(this._objectType=e.objectType)},url:function(){return t.linkToRemote("dav")+"/comments/"+encodeURIComponent(this._objectType)+"/"+encodeURIComponent(this.id)+"/"}});e.Comments.CommentSummaryModel=n}(OC,OCA)},function(e,n){!function(e,n){var o=n.Files.DetailTabView.extend({id:"commentsTabView",className:"tab commentsTabView",_autoCompleteData:void 0,_commentsModifyMenu:void 0,events:{"submit .newCommentForm":"_onSubmitComment","click .showMore":"_onClickShowMore","click .cancel":"_onClickCloseComment","click .comment":"_onClickComment","keyup div.message":"_onTextChange","change div.message":"_onTextChange","input div.message":"_onTextChange","paste div.message":"_onPaste"},_commentMaxLength:1e3,initialize:function(){n.Files.DetailTabView.prototype.initialize.apply(this,arguments),this.collection=new n.Comments.CommentCollection,this.collection.on("request",this._onRequest,this),this.collection.on("sync",this._onEndRequest,this),this.collection.on("add",this._onAddModel,this),this.collection.on("change:message",this._onChangeModel,this),this._commentMaxThreshold=.9*this._commentMaxLength,_.bindAll(this,"_onTypeComment","_initAutoComplete","_onAutoComplete")},template:function(t){var o=e.getCurrentUser();return n.Comments.Templates.view(_.extend({actorId:o.uid,actorDisplayName:o.displayName},t))},editCommentTemplate:function(o){var i=e.getCurrentUser();return n.Comments.Templates.edit_comment(_.extend({actorId:i.uid,actorDisplayName:i.displayName,newMessagePlaceholder:t("comments","New comment …"),submitText:t("comments","Post"),cancelText:t("comments","Cancel"),tag:"li"},o))},commentTemplate:function(o){return"deleted_users"===(o=_.extend({editTooltip:t("comments","Edit comment"),isUserAuthor:e.getCurrentUser().uid===o.actorId,isLong:this._isLong(o.message)},o)).actorType&&(o.actorId=null,o.actorDisplayName=t("comments","[Deleted user]")),n.Comments.Templates.comment(o)},getLabel:function(){return t("comments","Comments")},getIcon:function(){return"icon-comment"},setFileInfo:function(t){t?(this.model=t,this.render(),this._initAutoComplete($("#commentsTabView").find(".newCommentForm .message")),this.collection.setObjectId(this.model.id),this.collection.reset([],{silent:!0}),this.nextPage()):(this.model=null,this.render(),this.collection.reset())},render:function(){this.$el.html(this.template({emptyResultLabel:t("comments","No comments yet, start the conversation!"),moreLabel:t("comments","More comments …")})),this.$el.find(".comments").before(this.editCommentTemplate({tag:"div"})),this.$el.find(".has-tooltip").tooltip(),this.$container=this.$el.find("ul.comments"),this.$el.find(".avatar").avatar(e.getCurrentUser().uid,32),this.delegateEvents(),this.$el.find(".message").on("keydown input change",this._onTypeComment),autosize(this.$el.find(".newCommentRow .message")),this.$el.find(".newCommentForm .message").focus()},_initAutoComplete:function(t){var n=this,o=10;_.isUndefined(e.appConfig.comments)||(o=e.appConfig.comments.maxAutoCompleteResults),t.atwho({at:"@",limit:o,callbacks:{remoteFilter:n._onAutoComplete,highlighter:function(t){var e=$(t);return e.find(".avatar").avatar(void 0,32),e},sorter:function(t,e){return e}},displayTpl:function(t){return'<li><span class="avatar-name-wrapper"><span class="avatar" data-username="'+escapeHTML(t.id)+'" data-user="'+escapeHTML(t.id)+'" data-user-display-name="'+escapeHTML(t.label)+'"></span><strong>'+escapeHTML(t.label)+"</strong></span></li>"},insertTpl:function(t){return'<span class="avatar-name-wrapper"><span class="avatar" data-username="'+escapeHTML(t.id)+'" data-user="'+escapeHTML(t.id)+'" data-user-display-name="'+escapeHTML(t.label)+'"></span><strong>'+escapeHTML(t.label)+"</strong></span>"},searchKey:"label"}),t.on("inserted.atwho",function(t,e){n._postRenderItem($(t.target).find('span[data-username="'+e.find("[data-username]").data("username")+'"]').parent(),!0)})},_onAutoComplete:function(t,n){var o=this;_.isUndefined(this._autoCompleteRequestTimer)||clearTimeout(this._autoCompleteRequestTimer),this._autoCompleteRequestTimer=_.delay(function(){_.isUndefined(this._autoCompleteRequestCall)||this._autoCompleteRequestCall.abort(),this._autoCompleteRequestCall=$.ajax({url:e.linkToOCS("core",2)+"autocomplete/get",data:{search:t,itemType:"files",itemId:o.model.get("id"),sorter:"commenters|share-recipients",limit:e.appConfig.comments.maxAutoCompleteResults},beforeSend:function(t){t.setRequestHeader("Accept","application/json")},success:function(t){n(t.ocs.data)}})},400)},_formatItem:function(t){var n=new Date(t.get("creationDateTime")).getTime();return _.extend({timestamp:n,date:e.Util.relativeModifiedDate(n),altDate:e.Util.formatDate(n),formattedMessage:this._formatMessage(t.get("message"),t.get("mentions"))},t.attributes)},_toggleLoading:function(t){this._loading=t,this.$el.find(".loading").toggleClass("hidden",!t)},_onRequest:function(t){"REPORT"===t&&(this._toggleLoading(!0),this.$el.find(".showMore").addClass("hidden"))},_onEndRequest:function(t){var e=this.model;(this._toggleLoading(!1),this.$el.find(".emptycontent").toggleClass("hidden",!!this.collection.length),this.$el.find(".showMore").toggleClass("hidden",!this.collection.hasMoreResults()),"REPORT"===t)&&(this.collection.findWhere({isUnread:!0})&&this.collection.updateReadMarker(null,{success:function(){e.set("commentsUnread",0)}}),this.$el.find(".newCommentForm .message").focus())},_onAddModel:function(t,e,n){var o=$(this.commentTemplate(this._formatItem(t)));!_.isUndefined(n.at)&&e.length>1?this.$container.find("li").eq(n.at).before(o):this.$container.append(o),this._postRenderItem(o),$("#commentsTabView").find(".newCommentForm div.message").text("").prop("contenteditable",!0);var i=t.get("mentions"),a=this;t.fetch({success:function(t){if(!_.isEqual(i,t.get("mentions"))){var e=$(a.commentTemplate(a._formatItem(t)));o.html(e.html()),a._postRenderItem(o)}}})},_onChangeModel:function(t){if(t.get("message").trim()!==t.previous("message").trim()){var e=this.$container.find('.comment[data-id="'+t.id+'"] form').closest(".comment"),n=e.data("commentEl");if(!_.isUndefined(n)){var o=this;t.fetch({success:function(t){n.removeClass("hidden"),e.remove();var i=n.find(".message");i.html(o._formatMessage(t.get("message"),t.get("mentions"))).find(".avatar").each(function(){$(this).avatar()}),o._postRenderItem(i)}})}}},_postRenderItem:function(t,o){t.find(".has-tooltip").tooltip();var i=t.find(".message .avatar");$(t.context).hasClass("message")&&(i=t.find(".avatar")),i.each(function(){var t=$(this);t.avatar(t.attr("data-username"),16)}),t.find(".authorRow .avatar").each(function(){var t=$(this);t.avatar(t.attr("data-username"),32)});var a=t.find(".avatar").data("username");a!==e.getCurrentUser().uid&&t.find(".authorRow .avatar, .authorRow .author").contactsMenu(a,0,t.find(".authorRow"));var r=t.find(".message");if(0===r.length&&(r=t),!o){var s=this,l=new n.Comments.CommentsModifyMenu;t.find(".authorRow").append(l.$el),t.find(".more").on("click",_.bind(l.show,l)),s.listenTo(l,"select:menu-item-clicked",function(t,e){"edit"===e?s._onClickEditComment(t):"delete"===e&&s._onClickDeleteComment(t)})}this._postRenderMessage(r,o)},_postRenderMessage:function(t,n){n||t.find(".avatar-name-wrapper").each(function(){var t=$(this),n=t.find(".avatar").data("user");n!==e.getCurrentUser().uid&&t.contactsMenu(n,0,t)})},_formatMessage:function(t,e,n){for(var o in t=escapeHTML(t).replace(/\n/g,"<br/>"),e){if(!e.hasOwnProperty(o))return;var i="@"+e[o].mentionId;-1!==e[o].mentionId.indexOf(" ")&&(i=_.escape('@"'+e[o].mentionId+'"')),i=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");var a=new RegExp("(^|\\s)("+i+")\\b","g");-1!==e[o].mentionId.indexOf(" ")&&(a=new RegExp("(^|\\s)("+i+")","g"));var r=this._composeHTMLMention(e[o].mentionId,e[o].mentionDisplayName);t=t.replace(a,function(t,e){return e+r})}return!0!==n&&(t=OCP.Comments.plainToRich(t)),t},_composeHTMLMention:function(t,n){var o='<span class="avatar" data-username="'+_.escape(t)+'" data-user="'+_.escape(t)+'" data-user-display-name="'+_.escape(n)+'"></span>';return'<span class="atwho-inserted" contenteditable="false"><span class="avatar-name-wrapper'+(t===e.getCurrentUser().uid?" currentUser":"")+'">'+o+"<strong>"+_.escape(n)+"</strong></span></span>"},nextPage:function(){!this._loading&&this.collection.hasMoreResults()&&this.collection.fetchNext()},_onClickEditComment:function(e){e.preventDefault();var n=$(e.target).closest(".comment"),o=n.data("id"),i=this.collection.get(o),a=$(this.editCommentTemplate(_.extend({isEditMode:!0,submitText:t("comments","Save")},i.attributes)));n.addClass("hidden").removeClass("collapsed"),n.after(a),a.data("commentEl",n),a.find(".message").on("keydown input change",this._onTypeComment),a.find(".avatar:first").replaceWith(n.find(".avatar:first").clone()),a.find(".has-tooltip").tooltip();var r=a.find(".message");r.html(this._formatMessage(i.get("message"),i.get("mentions"),!0)).find(".avatar").each(function(){$(this).avatar()});return this._postRenderItem(r,!0),autosize(a.find(".message")),this._initAutoComplete(a.find(".message")),!1},_onTypeComment:function(e){var n=$(e.target),o=n.text().length,i=n.data("submitButtonEl");i||(i=n.closest("form").find(".submit"),n.data("submitButtonEl",i)),n.tooltip("hide"),o>this._commentMaxThreshold&&(n.attr("data-original-title",t("comments","Allowed characters {count} of {max}",{count:o,max:this._commentMaxLength})),n.tooltip({trigger:"manual"}),n.tooltip("show"),n.addClass("error"));var a=o>this._commentMaxLength;n.toggleClass("error",a),i.prop("disabled",a),13!==e.keyCode||e.shiftKey||n.atwho("isSelecting")||(i.click(),e.preventDefault())},_onClickComment:function(t){var e=$(t.target);e.is(".comment")||(e=e.closest(".comment")),e.removeClass("collapsed")},_onClickCloseComment:function(t){t.preventDefault();var e=$(t.target).closest(".comment");return e.data("commentEl").removeClass("hidden"),e.remove(),!1},_onClickDeleteComment:function(n){n.preventDefault();var o=$(n.target).closest(".comment"),i=o.data("id"),a=o.find(".deleteLoading"),r=o.find(".more");return o.addClass("disabled"),a.removeClass("hidden"),r.addClass("hidden"),o.data("commentEl",o),this.collection.get(i).destroy({success:function(){o.data("commentEl").remove(),o.remove()},error:function(){a.addClass("hidden"),r.removeClass("hidden"),o.removeClass("disabled"),e.Notification.showTemporary(t("comments","Error occurred while retrieving comment with ID {id}",{id:i}))}}),!1},_onClickShowMore:function(t){t.preventDefault(),this.nextPage()},_onSubmitSuccess:function(t,e){var n=e.find(".submit"),o=e.find(".submitLoading");n.removeClass("hidden"),o.addClass("hidden")},_commentBodyHTML2Plain:function(t){var e,n=t.clone();n.find(".avatar-name-wrapper").each(function(){var t=$(this),e=t.parent(),n=t.find(".avatar").data("username");-1!==n.indexOf(" ")?e.html('@"'+n+'"'):e.html("@"+n)}),n.html(OCP.Comments.richToPlain(n.html()));var o=n.html();do{o=(e=o).replace("<br>","\n")}while(e!==o);return n.html(o),n.text()},_onSubmitComment:function(t){var n=this,o=$(t.target),i=o.closest(".comment").data("id"),a=e.getCurrentUser(),r=o.find(".submit"),s=o.find(".submitLoading"),l=o.find(".message"),c=l.text().trim();if(t.preventDefault(),c.length&&!(c.length>this._commentMaxLength)){if(l.prop("contenteditable",!1),r.addClass("hidden"),s.removeClass("hidden"),c=this._commentBodyHTML2Plain(l),i)this.collection.get(i).save({message:c},{success:function(t){if(n._onSubmitSuccess(t,o),t.get("message").trim()===t.previous("message").trim()){var e=o.closest(".comment");e.data("commentEl").removeClass("hidden"),e.remove()}},error:function(){n._onSubmitError(o,i)}});else this.collection.create({actorId:a.uid,actorDisplayName:a.displayName,actorType:"users",verb:"comment",message:c,creationDateTime:(new Date).toUTCString()},{at:0,wait:!0,success:function(t){n._onSubmitSuccess(t,o)},error:function(){n._onSubmitError(o,void 0)}});return!1}},_onSubmitError:function(n,o){n.find(".submit").removeClass("hidden"),n.find(".submitLoading").addClass("hidden"),n.find(".message").prop("contenteditable",!0),_.isUndefined(o)?e.Notification.show(t("comments","Error occurred while posting comment"),{type:"error"}):e.Notification.show(t("comments","Error occurred while updating comment with id {id}",{id:o}),{type:"error"})},_onTextChange:function(){var t=$("#commentsTabView").find(".newCommentForm div.message");t.text().trim().length||t.empty()},_onPaste:function(t){t.preventDefault();var e=t.originalEvent.clipboardData.getData("text/plain");document.execCommand("insertText",!1,e)},_isLong:function(t){return t.length>250||(t.match(/\n/g)||[]).length>1}});n.Comments.CommentsTabView=o}(OC,OCA)},function(e,n){var o;OC,OCA,o=OC.Backbone.View.extend({tagName:"div",className:"commentsModifyMenu popovermenu bubble menu",_scopes:[{name:"edit",displayName:t("comments","Edit comment"),iconClass:"icon-rename"},{name:"delete",displayName:t("comments","Delete comment"),iconClass:"icon-delete"}],initialize:function(){},events:{"click a.action":"_onClickAction"},_onClickAction:function(t){var e=$(t.currentTarget);e.hasClass("menuitem")||(e=e.closest(".menuitem")),OC.hideMenus(),this.trigger("select:menu-item-clicked",t,e.data("action"))},render:function(){this.$el.html(OCA.Comments.Templates.commentsmodifymenu({items:this._scopes}))},show:function(t){for(var e in this._context=t,this._scopes)this._scopes[e].active=!1;var n=$(t.target),o=n.offset(),i=n.closest(".authorRow").offset(),a={top:o.top-i.top+48,left:"",right:""};a.left=o.left-i.left,a.left>200?(a.left="",a.right=this.$el.closest(".comment").find(".date").width(),this.$el.removeClass("menu-left").addClass("menu-right")):this.$el.removeClass("menu-right").addClass("menu-left"),this.$el.css(a),this.render(),this.$el.removeClass("hidden"),OC.showMenu(null,this.$el)}}),OCA.Comments=OCA.Comments||{},OCA.Comments.CommentsModifyMenu=o},function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:function(t){return OCA.Comments.Templates.filesplugin({count:t,countMessage:n("comments","%n unread comment","%n unread comments",t),iconUrl:OC.imagePath("core","actions/comment")})},attach:function(e){var o=this;if(!(this.ignoreLists.indexOf(e.id)>=0)){e.registerTabView(new OCA.Comments.CommentsTabView("commentsTabView"));var i=e._getWebdavProperties;e._getWebdavProperties=function(){var t=i.apply(this,arguments);return t.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),t},e.filesClient.addFileInfoParser(function(t){var e={},n=t.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(n)||""===n||(e.commentsUnread=parseInt(n,10)),e}),e.$el.addClass("has-comments");var a=e._createRow;e._createRow=function(t){var e=a.apply(this,arguments);return t.commentsUnread&&e.attr("data-comments-unread",t.commentsUnread),e},e.fileActions.registerAction({name:"Comment",displayName:function(e){if(e&&e.$file){var o=parseInt(e.$file.data("comments-unread"),10);if(o>=0)return n("comments","1 new comment","{unread} new comments",o,{unread:o})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render:function(t,e,n){var i=n.$file.data("comments-unread");if(i){var a=$(o._formatCommentCount(i));return n.$file.find("a.name>span.fileactions").append(a),a}return""},actionHandler:function(t,e){e.$file.find(".action-comment").tooltip("hide"),e.fileList.showDetailsView(t,"commentsTabView")}});var r=e.elementToFile;e.elementToFile=function(t){var e=r.apply(this,arguments),n=t.data("comments-unread");return n&&(e.commentsUnread=n),e}}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},function(t,e){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay:function(t,e,n){if("comments"===t.get("app")&&"comments"===t.get("type")&&"ActivityTabView"===n&&(e.addClass("comment"),t.get("message")&&this._isLong(t.get("message")))){e.addClass("collapsed");var o=$("<div>").addClass("message-overlay");e.find(".activitymessage").after(o),e.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment:function(t){var e=$(t.target);e.is(".comment")||(e=e.closest(".comment")),e.removeClass("collapsed")},_isLong:function(t){return t.length>250||(t.match(/\n/g)||[]).length>1}},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)},function(t,e){!function(t,e,n){"use strict";var o=function(){this.initialize()};o.prototype={fileList:null,initialize:function(){var o=this;this.fileAppLoaded=function(){return!!e.Files&&!!e.Files.App},this.renderCommentResult=function(e,o){var i;(i=n(".nofilterresults")).hasClass("hidden")||i.addClass("hidden"),this.updateLegacyMimetype(o);var a=n("<div>").addClass("path").text(o.path),r=n("<div>");r.addClass("avatar").css("display","inline-block").css("vertical-align","middle").css("margin","0 5px 2px 3px"),o.authorName?r.avatar(o.authorId,21,void 0,!1,void 0,o.authorName):r.avatar(o.authorId,21),e.find("td.info div.name").after(a).text(o.comment).prepend(n("<span>").addClass("path").css("margin-right","5px").text(o.authorName)).prepend(r),e.find("td.result a").attr("href",o.link),e.find("td.icon").css("background-image","url("+t.imagePath("core","actions/comment")+")").css("opacity",".4");var s=t.dirname(o.path);return s===o.path&&(s="/"),e.find("td.info a").attr("href",t.generateUrl("/apps/files/?dir={dir}&scrollto={scrollto}",{dir:s,scrollto:o.fileName})),e},this.handleCommentClick=function(e,n,i){return!o.fileAppLoaded()||"files"!==o.fileList.id||(o.fileList.changeDirectory(t.dirname(n.path)),o.fileList.scrollTo(n.name),!1)},this.updateLegacyMimetype=function(t){!t.mime&&t.mime_type&&(t.mime=t.mime_type)},this.setFileList=function(t){this.fileList=t},t.Plugins.register("OCA.Search.Core",this)},attach:function(t){t.setRenderer("comment",this.renderCommentResult.bind(this)),t.setHandler("comment",this.handleCommentClick.bind(this))}},e.Search.comment=new o}(OC,OCA,$)},function(t,e,n){var o,i,a;a=this,o=[n(0)],void 0===(i=function(t){return a.returnExportsGlobal=function(t){"use strict";var e,n,o,i,a,r,s,l;e=function(){function e(t){this.$inputor=t,this.domInputor=this.$inputor[0]}return e.prototype.setPos=function(){return this.domInputor},e.prototype.getIEPosition=function(){return this.getPosition()},e.prototype.getPosition=function(){var t,e;return e=this.getOffset(),t=this.$inputor.offset(),e.left-=t.left,e.top-=t.top,e},e.prototype.getOldIEPos=function(){var t,e;return e=r.selection.createRange(),(t=r.body.createTextRange()).moveToElementText(this.domInputor),t.setEndPoint("EndToEnd",e),t.text.length},e.prototype.getPos=function(){var t,e,n;return(n=this.range())?((t=n.cloneRange()).selectNodeContents(this.domInputor),t.setEnd(n.endContainer,n.endOffset),e=t.toString().length,t.detach(),e):r.selection?this.getOldIEPos():void 0},e.prototype.getOldIEOffset=function(){var t,e;return(t=r.selection.createRange().duplicate()).moveStart("character",-1),{height:(e=t.getBoundingClientRect()).bottom-e.top,left:e.left,top:e.top}},e.prototype.getOffset=function(){var e,n,o,i,a;return s.getSelection&&(o=this.range())?(o.endOffset-1>0&&o.endContainer===!this.domInputor&&((e=o.cloneRange()).setStart(o.endContainer,o.endOffset-1),e.setEnd(o.endContainer,o.endOffset),n={height:(i=e.getBoundingClientRect()).height,left:i.left+i.width,top:i.top},e.detach()),n&&0!==(null!=n?n.height:void 0)||(e=o.cloneRange(),a=t(r.createTextNode("|")),e.insertNode(a[0]),e.selectNode(a[0]),n={height:(i=e.getBoundingClientRect()).height,left:i.left,top:i.top},a.remove(),e.detach())):r.selection&&(n=this.getOldIEOffset()),n&&(n.top+=t(s).scrollTop(),n.left+=t(s).scrollLeft()),n},e.prototype.range=function(){var t;if(s.getSelection)return(t=s.getSelection()).rangeCount>0?t.getRangeAt(0):null},e}(),n=function(){function e(t){this.$inputor=t,this.domInputor=this.$inputor[0]}return e.prototype.getIEPos=function(){var t,e,n,o,i,a;return e=this.domInputor,o=0,(i=r.selection.createRange())&&i.parentElement()===e&&(n=e.value.replace(/\r\n/g,"\n").length,(a=e.createTextRange()).moveToBookmark(i.getBookmark()),(t=e.createTextRange()).collapse(!1),o=a.compareEndPoints("StartToEnd",t)>-1?n:-a.moveStart("character",-n)),o},e.prototype.getPos=function(){return r.selection?this.getIEPos():this.domInputor.selectionStart},e.prototype.setPos=function(t){var e,n;return e=this.domInputor,r.selection?((n=e.createTextRange()).move("character",t),n.select()):e.setSelectionRange&&e.setSelectionRange(t,t),e},e.prototype.getIEOffset=function(t){var e;return e=this.domInputor.createTextRange(),t||(t=this.getPos()),e.move("character",t),{left:e.boundingLeft,top:e.boundingTop,height:e.boundingHeight}},e.prototype.getOffset=function(e){var n,o,i;return n=this.$inputor,r.selection?((o=this.getIEOffset(e)).top+=t(s).scrollTop()+n.scrollTop(),o.left+=t(s).scrollLeft()+n.scrollLeft(),o):(o=n.offset(),i=this.getPosition(e),o={left:o.left+i.left-n.scrollLeft(),top:o.top+i.top-n.scrollTop(),height:i.height})},e.prototype.getPosition=function(t){var e,n,i,a,r;return e=this.$inputor,i=function(t){return t=t.replace(/<|>|`|"|&/g,"?").replace(/\r\n|\r|\n/g,"<br/>"),/firefox/i.test(navigator.userAgent)&&(t=t.replace(/\s/g,"&nbsp;")),t},void 0===t&&(t=this.getPos()),r=e.val().slice(0,t),n=e.val().slice(t),a="<span style='position: relative; display: inline;'>"+i(r)+"</span>",a+="<span id='caret' style='position: relative; display: inline;'>|</span>",a+="<span style='position: relative; display: inline;'>"+i(n)+"</span>",new o(e).create(a).rect()},e.prototype.getIEPosition=function(t){var e,n;return n=this.getIEOffset(t),e=this.$inputor.offset(),{left:n.left-e.left,top:n.top-e.top,height:n.height}},e}(),o=function(){function e(t){this.$inputor=t}return e.prototype.css_attr=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","boxSizing","fontFamily","fontSize","fontWeight","height","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","outlineWidth","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textOverflow","textTransform","whiteSpace","wordBreak","wordWrap"],e.prototype.mirrorCss=function(){var e,n=this;return e={position:"absolute",left:-9999,top:0,zIndex:-2e4},"TEXTAREA"===this.$inputor.prop("tagName")&&this.css_attr.push("width"),t.each(this.css_attr,function(t,o){return e[o]=n.$inputor.css(o)}),e},e.prototype.create=function(e){return this.$mirror=t("<div></div>"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(e),this.$inputor.after(this.$mirror),this},e.prototype.rect=function(){var t,e,n;return n={left:(e=(t=this.$mirror.find("#caret")).position()).left,top:e.top,height:t.height()},this.$mirror.remove(),n},e}(),i={contentEditable:function(t){return!(!t[0].contentEditable||"true"!==t[0].contentEditable)}},a={pos:function(t){return t||0===t?this.setPos(t):this.getPos()},position:function(t){return r.selection?this.getIEPosition(t):this.getPosition(t)},offset:function(t){return this.getOffset(t)}},r=null,s=null,l=function(t){var e;return(e=null!=t?t.iframe:void 0)?(s=e.contentWindow,r=e.contentDocument||s.document):(s=window,r=document)},t.fn.caret=function(o,r,s){var c;return a[o]?(t.isPlainObject(r)?(l(r),r=void 0):l(s),c=i.contentEditable(this)?new e(this):new n(this),a[o].apply(c,[r])):t.error("Method "+o+" does not exist on jQuery.caret")},t.fn.caret.EditableCaret=e,t.fn.caret.InputCaret=n,t.fn.caret.Utils=i,t.fn.caret.apis=a}(t)}.apply(e,o))||(t.exports=i)},function(t,e,n){var o,i;function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}o=[n(0)],void 0===(i=function(t){return function(t){var e,n,o;n={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return i.arrayToDefaultHash(t)},matcher:function(t,e,n,o){var i,a,r;return t=t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),n&&(t="(?:^|\\s)"+t),i=decodeURI("%C3%80"),a=decodeURI("%C3%BF"),(r=new RegExp(t+"([A-Za-z"+i+"-"+a+"0-9_"+(o?" ":"")+"'.+-]*)$|"+t+"([^\\x00-\\xff]*)$","gi").exec(e))?r[2]||r[1]:null},filter:function(t,e,n){var o,i,a,r;for(o=[],i=0,r=e.length;r>i;i++)a=e[i],~new String(a[n]).toLowerCase().indexOf(t.toLowerCase())&&o.push(a);return o},remoteFilter:null,sorter:function(t,e,n){var o,i,a,r;if(!t)return e;for(o=[],i=0,r=e.length;r>i;i++)(a=e[i]).atwho_order=new String(a[n]).toLowerCase().indexOf(t.toLowerCase()),a.atwho_order>-1&&o.push(a);return o.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var n;n=t;try{return"string"!=typeof t&&(n=t(e)),n.replace(/\$\{([^\}]*)\}/g,function(t,n,o){return e[n]})}catch(t){return""}},highlighter:function(t,e){var n;return e?(n=new RegExp(">\\s*([^<]*?)("+e.replace("+","\\+")+")([^<]*)\\s*<","ig"),t.replace(n,function(t,e,n,o){return"> "+e+"<strong>"+n+"</strong>"+o+" <"})):t},beforeInsert:function(t,e,n){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}},o=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var n;return null!=(n=this.$el)&&n.remove(),t(e.body).append(this.$el=t("<div class='atwho-container'></div>"))},e.prototype.setupRootElement=function(e,n){var o,i;if(null==n&&(n=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(i){if(o=i,this.iframe=null,t.fn.atwho.debug)throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n"+o)}}return this.createContainer((this.iframeAsRoot=n)?this.document:document)},e.prototype.controller=function(t){var e,n,o,i;if(this.aliasMaps[t])n=this.controllers[this.aliasMaps[t]];else for(o in i=this.controllers)if(e=i[o],o===t){n=e;break}return n||this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var n,o;return o=(n=this.controllers)[t]||(n[t]=this.$inputor.is("[contentEditable]")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),o.init(e),this},e.prototype.listen=function(){return this.$inputor.on("compositionstart",function(t){return function(e){var n;return null!=(n=t.controller())&&n.view.hide(),t.isComposing=!0,null}}(this)).on("compositionend",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on("keyup.atwhoInner",function(t){return function(e){return t.onKeyup(e)}}(this)).on("keydown.atwhoInner",function(t){return function(e){return t.onKeydown(e)}}(this)).on("blur.atwhoInner",function(t){return function(e){var n;return(n=t.controller())?(n.expectedQueryCBId=null,n.view.hide(e,n.getOpt("displayTimeout"))):void 0}}(this)).on("click.atwhoInner",function(t){return function(e){return t.dispatch(e)}}(this)).on("scroll.atwhoInner",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(n){var o,i;return o=n.target.scrollTop,e!==o&&null!=(i=t.controller())&&i.view.hide(n),e=o,!0}}}(this)())},e.prototype.shutdown=function(){var t,e;for(t in e=this.controllers)e[t].destroy(),delete this.controllers[t];return this.$inputor.off(".atwhoInner"),this.$el.remove()},e.prototype.dispatch=function(t){var e,n,o,i;for(e in i=[],o=this.controllers)n=o[e],i.push(n.lookUp(t));return i},e.prototype.onKeyup=function(e){var o;switch(e.keyCode){case n.ESC:e.preventDefault(),null!=(o=this.controller())&&o.view.hide();break;case n.DOWN:case n.UP:case n.CTRL:case n.ENTER:t.noop();break;case n.P:case n.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var o,i;if((i=null!=(o=this.controller())?o.view:void 0)&&i.visible())switch(e.keyCode){case n.ESC:e.preventDefault(),i.hide(e);break;case n.UP:e.preventDefault(),i.prev();break;case n.DOWN:e.preventDefault(),i.next();break;case n.P:if(!e.ctrlKey)return;e.preventDefault(),i.prev();break;case n.N:if(!e.ctrlKey)return;e.preventDefault(),i.next();break;case n.TAB:case n.ENTER:case n.SPACE:if(!i.visible())return;if(!this.controller().getOpt("spaceSelectsMatch")&&e.keyCode===n.SPACE)return;if(!this.controller().getOpt("tabSelectsMatch")&&e.keyCode===n.TAB)return;i.highlighted()?(e.preventDefault(),i.choose(e)):i.hide(e);break;default:t.noop()}},e}();var i,r=[].slice;i=function(){function n(e,n){this.app=e,this.at=n,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t("#atwho-ground-"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t("<div id='atwho-ground-"+this.id+"'></div>")),this.model=new c(this),this.view=new m(this)}return n.prototype.uid=function(){return(Math.random().toString(16)+"000000000").substr(2,8)+(new Date).getTime()},n.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho.default,e),this.view.init(),this.model.reload(this.setting.data)},n.prototype.destroy=function(){return this.trigger("beforeDestroy"),this.model.destroy(),this.view.destroy(),this.$el.remove()},n.prototype.callDefault=function(){var n,o,i,a;a=arguments[0],n=2<=arguments.length?r.call(arguments,1):[];try{return e[a].apply(this,n)}catch(i){return o=i,t.error(o+" Or maybe At.js doesn't have function "+a)}},n.prototype.trigger=function(t,e){var n,o;return null==e&&(e=[]),e.push(this),o=(n=this.getOpt("alias"))?t+"-"+n+".atwho":t+".atwho",this.$inputor.trigger(o,e)},n.prototype.callbacks=function(t){return this.getOpt("callbacks")[t]||e[t]},n.prototype.getOpt=function(t,e){try{return this.setting[t]}catch(t){return null}},n.prototype.insertContentFor=function(e){var n,o;return o=this.getOpt("insertTpl"),n=t.extend({},e.data("item-data"),{"atwho-at":this.at}),this.callbacks("tplEval").call(this,o,n,"onInsert")},n.prototype.renderView=function(t){var e;return e=this.getOpt("searchKey"),t=this.callbacks("sorter").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt("limit")))},n.arrayToDefaultHash=function(e){var n,o,i,a;if(!t.isArray(e))return e;for(a=[],n=0,i=e.length;i>n;n++)o=e[n],t.isPlainObject(o)?a.push(o):a.push({name:o});return a},n.prototype.lookUp=function(t){var e,n;if((!t||"click"!==t.type||this.getOpt("lookUpOnClick"))&&(!this.getOpt("suspendOnComposing")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(n=this.getOpt("delay"))?this._delayLookUp(e,n):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},n.prototype._delayLookUp=function(t,e){var n,o;return n=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=n),(o=e-(n-this.previousCallTime))>0&&e>o?(this.previousCallTime=n,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==n&&(this.previousCallTime=0),this._lookUp(t))},n.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},n.prototype._generateQueryCBId=function(){return{}},n.prototype._lookUp=function(e){var n;return n=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(n,this,this.expectedQueryCBId))},n}();var s,l,c,m,u,d=function(t,e){function n(){this.constructor=t}for(var o in e)h.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return d(n,i),n.prototype.catchQuery=function(){var t,e,n,o,i,a,r;return e=this.$inputor.val(),t=this.$inputor.caret("pos",{iframe:this.app.iframe}),r=e.slice(0,t),(o="string"==typeof(i=this.callbacks("matcher").call(this,this.at,r,this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar"))))&&i.length<this.getOpt("minLen",0)?void 0:(o&&i.length<=this.getOpt("maxLen",20)?(n=(a=t-i.length)+i.length,this.pos=a,i={text:i,headPos:a,endPos:n},this.trigger("matched",[this.at,i.text])):(i=null,this.view.hide()),this.query=i)},n.prototype.rect=function(){var e,n,o;if(e=this.$inputor.caret("offset",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(n=t(this.app.iframe).offset(),e.left+=n.left,e.top+=n.top),o=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+o}},n.prototype.insert=function(t,e){var n,o,i,a,r;return r=""+(i=(o=(n=this.$inputor).val()).slice(0,Math.max(this.query.headPos-this.at.length,0)))+(t+=a=""===(a=this.getOpt("suffix"))?a:a||" ")+o.slice(this.query.endPos||0),n.val(r),n.caret("pos",i.length+t.length,{iframe:this.app.iframe}),n.is(":focus")||n.focus(),n.change()},n}(),d=function(t,e){function n(){this.constructor=t}for(var o in e)h.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},h={}.hasOwnProperty,l=function(e){function o(){return o.__super__.constructor.apply(this,arguments)}return d(o,i),o.prototype._getRange=function(){var t;return(t=this.app.window.getSelection()).rangeCount>0?t.getRangeAt(0):void 0},o.prototype._setRange=function(e,n,o){return null==o&&(o=this._getRange()),o&&n?(n=t(n)[0],"after"===e?(o.setEndAfter(n),o.setStartAfter(n)):(o.setEndBefore(n),o.setStartBefore(n)),o.collapse(!1),this._clearRange(o)):void 0},o.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},o.prototype._movingEvent=function(t){var e;return"click"===t.type||(e=t.which)===n.RIGHT||e===n.LEFT||e===n.UP||e===n.DOWN},o.prototype._unwrap=function(e){var n;return(n=(e=t(e).unwrap().get(0)).nextSibling)&&n.nodeValue&&(e.nodeValue+=n.nodeValue,t(n).remove()),e},o.prototype.catchQuery=function(e){var o,i,a,r,s,l,c,m,u,d,h,p;if((p=this._getRange())&&p.collapsed){if(e.which===n.ENTER)return(i=t(p.startContainer).closest(".atwho-query")).contents().unwrap(),i.is(":empty")&&i.remove(),(i=t(".atwho-query",this.app.document)).text(i.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(p.startContainer).is(this.$inputor))return void this._clearRange();e.which===n.BACKSPACE&&p.startContainer.nodeType===document.ELEMENT_NODE&&(u=p.startOffset-1)>=0?((a=p.cloneRange()).setStart(p.startContainer,u),t(a.cloneContents()).contents().last().is(".atwho-inserted")&&(s=t(p.startContainer).contents().get(u),this._setRange("after",t(s).contents().last()))):e.which===n.LEFT&&p.startContainer.nodeType===document.TEXT_NODE&&(o=t(p.startContainer.previousSibling)).is(".atwho-inserted")&&0===p.startOffset&&this._setRange("after",o.contents().last())}if(t(p.startContainer).closest(".atwho-inserted").addClass("atwho-query").siblings().removeClass("atwho-query"),(i=t(".atwho-query",this.app.document)).length>0&&i.is(":empty")&&0===i.text().length&&i.remove(),this._movingEvent(e)||i.removeClass("atwho-inserted"),i.length>0)switch(e.which){case n.LEFT:return this._setRange("before",i.get(0),p),void i.removeClass("atwho-query");case n.RIGHT:return this._setRange("after",i.get(0).nextSibling,p),void i.removeClass("atwho-query")}if(i.length>0&&(h=i.attr("data-atwho-at-query"))&&(i.empty().html(h).attr("data-atwho-at-query",null),this._setRange("after",i.get(0),p)),(a=p.cloneRange()).setStart(p.startContainer,0),l="string"==typeof(m=this.callbacks("matcher").call(this,this.at,a.toString(),this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar"))),0===i.length&&l&&(r=p.startOffset-this.at.length-m.length)>=0&&(p.setStart(p.startContainer,r),i=t("<span/>",this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass("atwho-query"),p.surroundContents(i.get(0)),(c=i.contents().last().get(0))&&(/firefox/i.test(navigator.userAgent)?(p.setStart(c,c.length),p.setEnd(c,c.length),this._clearRange(p)):this._setRange("after",c,p))),!(l&&m.length<this.getOpt("minLen",0)))return l&&m.length<=this.getOpt("maxLen",20)?(d={text:m,el:i},this.trigger("matched",[this.at,d.text]),this.query=d):(this.view.hide(),this.query={el:i},i.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&i.hasClass("atwho-inserted")?i.removeClass("atwho-query"):!1!==this.callbacks("afterMatchFailed").call(this,this.at,i)&&this._setRange("after",this._unwrap(i.text(i.text()).contents().first()))),null)}},o.prototype.rect=function(){var e,n;return(n=this.query.el.offset())&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(e=t(this.app.iframe).offset(),n.left+=e.left-this.$inputor.scrollLeft(),n.top+=e.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},o.prototype.insert=function(t,e){var n,o,i,a,r;return this.$inputor.is(":focus")||this.$inputor.focus(),(o=this.getOpt("functionOverrides")).insert?o.insert.call(this,t,e):(a=""===(a=this.getOpt("suffix"))?a:a||" ",n=e.data("item-data"),this.query.el.removeClass("atwho-query").addClass("atwho-inserted").html(t).attr("data-atwho-at-query",""+n["atwho-at"]+this.query.text).attr("contenteditable","false"),(i=this._getRange())&&(this.query.el.length&&i.setEndAfter(this.query.el[0]),i.collapse(!1),i.insertNode(r=this.app.document.createTextNode(""+a)),this._setRange("after",r,i)),this.$inputor.is(":focus")||this.$inputor.focus(),this.$inputor.change())},o}(),c=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var n,o,i;return o=this.fetch(),i=this.context.getOpt("searchKey"),o=this.context.callbacks("filter").call(this.context,t,o,i)||[],n=this.context.callbacks("remoteFilter"),o.length>0||!n&&0===o.length?e(o):n.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks("beforeSave").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return"string"==typeof e?t.ajax(e,{dataType:"json"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}(),m=function(){function e(e){this.context=e,this.$el=t("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt("alias")||this.context.at.charCodeAt(0),(t=this.context.getOpt("headerTpl"))&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:"at-view-"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,n,o;return e=this.$el.find("ul"),n=0,o=0,e.on("mousemove.atwho-view","li",function(i){var a;if((n!==i.clientX||o!==i.clientY)&&(n=i.clientX,o=i.clientY,!(a=t(i.currentTarget)).hasClass("cur")))return e.find(".cur").removeClass("cur"),a.addClass("cur")}).on("click.atwho-view","li",function(n){return function(o){return e.find(".cur").removeClass("cur"),t(o.currentTarget).addClass("cur"),n.choose(o),o.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(".cur").length>0},e.prototype.choose=function(t){var e,n;return(e=this.$el.find(".cur")).length&&(n=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks("beforeInsert").call(this.context,n,e,t),e),this.context.trigger("inserted",[e,t]),this.hide(t)),this.context.getOpt("hideWithoutSuffix")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var n,o,i,a;return n=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(n).scrollTop()>t(n).height()&&(e.bottom=e.top-this.$el.height()),e.left>(i=t(n).width()-this.$el.width()-5)&&(e.left=i),o={left:e.left,top:e.bottom},null!=(a=this.context.callbacks("beforeReposition"))&&a.call(this.context,o),this.$el.offset(o),this.context.trigger("reposition",[o])},e.prototype.next=function(){var t,e,n;return(t=this.$el.find(".cur").removeClass("cur").next()).length||(t=this.$el.find("li:first")),t.addClass("cur"),n=(e=t[0]).offsetTop+e.offsetHeight+(e.nextSibling?e.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,n;return(e=this.$el.find(".cur").removeClass("cur").prev()).length||(e=this.$el.find("li:last")),e.addClass("cur"),t=(n=e[0]).offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,t-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return(e=this.context.getOpt("scrollDuration"))?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger("shown")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var n;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger("hidden",[t])):(n=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(n,e))},e.prototype.render=function(e){var n,o,i,a,r,s,l;if(t.isArray(e)&&e.length>0){for(this.$el.find("ul").empty(),o=this.$el.find("ul"),l=this.context.getOpt("displayTpl"),i=0,r=e.length;r>i;i++)a=e[i],a=t.extend({},a,{"atwho-at":this.context.at}),s=this.context.callbacks("tplEval").call(this.context,l,a,"onDisplay"),(n=t(this.context.callbacks("highlighter").call(this.context,s,this.context.query.text))).data("item-data",a),o.append(n);return this.show(),this.context.getOpt("highlightFirst")?o.find("li:first").addClass("cur"):void 0}this.hide()},e}(),u={load:function(t,e){var n;return(n=this.controller(t))?n.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data("atwho",null)}},t.fn.atwho=function(e){var n,i;return n=arguments,i=null,this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function(){var r,s;return(s=(r=t(this)).data("atwho"))||r.data("atwho",s=new o(this)),"object"!=a(e)&&e?u[e]&&s?i=u[e].apply(s,Array.prototype.slice.call(n,1)):t.error("Method "+e+" does not exist on jQuery.atwho"):s.reg(e.at,e)}),null!=i?i:this},t.fn.atwho.default={at:void 0,alias:void 0,data:null,displayTpl:"<li>${name}</li>",insertTpl:"${atwho-at}${name}",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:"name",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1}(t)}.apply(e,o))||(t.exports=i)},function(t,e,n){var o=n(17);"string"==typeof o&&(o=[[t.i,o,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(o,i);o.locals&&(t.exports=o.locals)},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"/**\n * based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,\n * only changed colors and font-weight\n */\n.atwho-view {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n margin-top: 18px;\n background: var(--color-main-background);\n color: var(--color-main-text);\n border: 1px solid var(--color-border);\n border-radius: var(--border-radius);\n box-shadow: 0 0 5px var(--color-box-shadow);\n min-width: 120px;\n z-index: 11110 !important; }\n\n.atwho-view .atwho-header {\n padding: 5px;\n margin: 5px;\n cursor: pointer;\n border-bottom: solid 1px var(--color-border);\n color: var(--color-main-text);\n font-size: 11px;\n font-weight: bold; }\n\n.atwho-view .atwho-header .small {\n color: var(--color-main-text);\n float: right;\n padding-top: 2px;\n margin-right: -5px;\n font-size: 12px;\n font-weight: normal; }\n\n.atwho-view .atwho-header:hover {\n cursor: default; }\n\n.atwho-view .cur {\n background: var(--color-primary);\n color: var(--color-primary-text); }\n\n.atwho-view .cur small {\n color: var(--color-primary-text); }\n\n.atwho-view strong {\n color: var(--color-main-text);\n font-weight: normal; }\n\n.atwho-view .cur strong {\n color: var(--color-primary-text);\n font-weight: normal; }\n\n.atwho-view ul {\n /* width: 100px; */\n list-style: none;\n padding: 0;\n margin: auto;\n max-height: 200px;\n overflow-y: auto; }\n\n.atwho-view ul li {\n display: block;\n padding: 5px 10px;\n border-bottom: 1px solid var(--color-border);\n cursor: pointer; }\n\n.atwho-view small {\n font-size: smaller;\n color: var(--color-main-text);\n font-weight: normal; }\n",""])},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var i,a=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(a)?t:(i=0===a.indexOf("//")?a:0===a.indexOf("/")?n+a:o+a.replace(/^\.\//,""),"url("+JSON.stringify(i)+")")})}},function(t,e,n){var o=n(20);"string"==typeof o&&(o=[[t.i,o,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(2)(o,i);o.locals&&(t.exports=o.locals)},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#commentsTabView .emptycontent {\n margin-top: 0; }\n\n#commentsTabView .newCommentForm {\n margin-left: 36px;\n position: relative; }\n\n#commentsTabView .newCommentForm .message {\n width: 100%;\n padding: 10px;\n min-height: 44px;\n margin: 0;\n /* Prevent the text from overlapping with the submit button. */\n padding-right: 30px; }\n\n#commentsTabView .newCommentForm .submit,\n#commentsTabView .newCommentForm .submitLoading {\n width: 44px;\n height: 44px;\n margin: 0;\n padding: 13px;\n background-color: transparent;\n border: none;\n opacity: .3;\n position: absolute;\n bottom: 0;\n right: 0; }\n\n#commentsTabView .deleteLoading {\n padding: 14px;\n vertical-align: middle; }\n\n#commentsTabView .newCommentForm .submit:not(:disabled):hover,\n#commentsTabView .newCommentForm .submit:not(:disabled):focus {\n opacity: 1; }\n\n#commentsTabView .newCommentForm div.message {\n resize: none; }\n\n#commentsTabView .newCommentForm div.message:empty:before {\n content: attr(data-placeholder);\n color: grey; }\n\n#commentsTabView .comment {\n position: relative;\n /** padding bottom is little more so that the top and bottom gap look uniform **/\n padding: 10px 0 15px; }\n\n#commentsTabView .comments .comment {\n border-top: 1px solid var(--color-border); }\n\n#commentsTabView .comment .avatar,\n.atwho-view-ul * .avatar {\n width: 32px;\n height: 32px;\n line-height: 32px;\n margin-right: 5px; }\n\n#commentsTabView .comment .message .avatar,\n.atwho-view-ul * .avatar {\n display: inline-block; }\n\n#activityTabView li.comment.collapsed .activitymessage,\n#commentsTabView .comment.collapsed .message {\n white-space: pre-wrap; }\n\n#activityTabView li.comment.collapsed .activitymessage,\n#commentsTabView .comment.collapsed .message {\n max-height: 70px;\n overflow: hidden; }\n\n#activityTabView li.comment .message-overlay,\n#commentsTabView .comment .message-overlay {\n display: none; }\n\n#activityTabView li.comment.collapsed .message-overlay,\n#commentsTabView .comment.collapsed .message-overlay {\n display: block;\n position: absolute;\n z-index: 2;\n height: 50px;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: 0;\n background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background-repeat: no-repeat; }\n\n#commentsTabView .hidden {\n display: none !important; }\n\n/** set min-height as 44px to ensure that it fits the button sizes. **/\n#commentsTabView .comment .authorRow {\n min-height: 44px; }\n\n#commentsTabView .comment .authorRow .tooltip {\n /** because of the padding on the element, the tooltip appear too far up,\n\t adding this brings them closer to the element**/\n margin-top: 5px; }\n\n.atwho-view-ul * .avatar-name-wrapper,\n#commentsTabView .comment .authorRow {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%; }\n\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,\n#commentsTabView .comment .authorRow .avatar:not(.currentUser),\n#commentsTabView .comment .authorRow .author:not(.currentUser) {\n cursor: pointer; }\n\n.atwho-view-ul .avatar-name-wrapper,\n.atwho-view-ul .avatar-name-wrapper .avatar,\n.atwho-view-ul .avatar-name-wrapper .avatar img {\n cursor: pointer; }\n\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper {\n /* Make the wrapper the positioning context of its child contacts\n\t\t * menu. */\n position: relative;\n display: inline;\n vertical-align: top;\n background-color: var(--color-background-dark);\n border-radius: 50vh;\n padding: 1px 7px 1px 1px;\n /* Ensure that the avatar and the user name will be kept together. */\n white-space: nowrap; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar {\n height: 16px;\n width: 16px;\n vertical-align: middle;\n padding: 1px;\n margin-top: -3px;\n margin-left: 0;\n margin-right: 2px; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img {\n vertical-align: top; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong {\n /* Ensure that the user name is shown in bold, as different browsers\n\t\t\t * use different font weights for strong elements. */\n font-weight: bold; }\n\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser {\n background-color: var(--color-primary);\n color: var(--color-primary-text); }\n\n.atwho-view-ul * .avatar-name-wrapper {\n white-space: nowrap; }\n\n#commentsTabView .comment .author,\n#commentsTabView .comment .date {\n opacity: .5; }\n\n#commentsTabView .comment .author {\n max-width: 210px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; }\n\n#commentsTabView .comment .date {\n margin-left: auto;\n /** this is to fix the tooltip being too close due to the margin-top applied\n\t to bring the tooltip closer for the action icons **/\n padding: 10px 0px; }\n\n#commentsTabView .comments > li:not(.newCommentRow) .message {\n padding-left: 40px;\n word-wrap: break-word;\n overflow-wrap: break-word; }\n\n#commentsTabView .comment .action {\n opacity: 0.3;\n padding: 14px;\n display: block; }\n\n#commentsTabView .comment .action:hover,\n#commentsTabView .comment .action:focus {\n opacity: 1; }\n\n#commentsTabView .newCommentRow .action-container {\n margin-left: auto; }\n\n#commentsTabView .comment.disabled .message {\n opacity: 0.3; }\n\n#commentsTabView .comment.disabled .action {\n display: none; }\n\n#commentsTabView .message.error {\n color: #e9322d;\n border-color: #e9322d;\n box-shadow: 0 0 6px #f8b9b7; }\n\n.app-files .action-comment {\n padding: 16px 14px; }\n\n#commentsTabView .comment .message .contactsmenu-popover {\n left: -6px;\n top: 24px; }\n",""])}]);
+!function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}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 i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));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="/js/",n(n.s=3)}([function(t,e){t.exports=jQuery},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",o=t[3];if(!o)return n;if(e&&"function"==typeof btoa){var i=(r=o,s=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(l," */")),a=o.sources.map(function(t){return"/*# sourceURL=".concat(o.sourceRoot).concat(t," */")});return[n].concat(a).concat([i]).join("\n")}var r,s,l;return[n].join("\n")}(e,t);return e[2]?"@media ".concat(e[2],"{").concat(n,"}"):n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},i=0;i<this.length;i++){var a=this[i][0];null!=a&&(o[a]=!0)}for(var r=0;r<t.length;r++){var s=t[r];null!=s[0]&&o[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="(".concat(s[2],") and (").concat(n,")")),e.push(s))}},e}},function(t,e,n){"use strict";var o,i={},a=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},r=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}();function s(t,e){for(var n=[],o={},i=0;i<t.length;i++){var a=t[i],r=e.base?a[0]+e.base:a[0],s={css:a[1],media:a[2],sourceMap:a[3]};o[r]?o[r].parts.push(s):n.push(o[r]={id:r,parts:[s]})}return n}function l(t,e){for(var n=0;n<t.length;n++){var o=t[n],a=i[o.id],r=0;if(a){for(a.refs++;r<a.parts.length;r++)a.parts[r](o.parts[r]);for(;r<o.parts.length;r++)a.parts.push(f(o.parts[r],e))}else{for(var s=[];r<o.parts.length;r++)s.push(f(o.parts[r],e));i[o.id]={id:o.id,refs:1,parts:s}}}}function c(t){var e=document.createElement("style");if(void 0===t.attributes.nonce){var o=n.nc;o&&(t.attributes.nonce=o)}if(Object.keys(t.attributes).forEach(function(n){e.setAttribute(n,t.attributes[n])}),"function"==typeof t.insert)t.insert(e);else{var i=r(t.insert||"head");if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(e)}return e}var m,u=(m=[],function(t,e){return m[t]=e,m.filter(Boolean).join("\n")});function h(t,e,n,o){var i=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=u(e,i);else{var a=document.createTextNode(i),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(a,r[e]):t.appendChild(a)}}var d=null,p=0;function f(t,e){var n,o,i;if(e.singleton){var a=p++;n=d||(d=c(e)),o=h.bind(null,n,a,!1),i=h.bind(null,n,a,!0)}else n=c(e),o=function(t,e,n){var o=n.css,i=n.media,a=n.sourceMap;if(i&&t.setAttribute("media",i),a&&btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleSheet)t.styleSheet.cssText=o;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(o))}}.bind(null,n,e),i=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else i()}}t.exports=function(t,e){(e=e||{}).attributes="object"==typeof e.attributes?e.attributes:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=a());var n=s(t,e);return l(n,e),function(t){for(var o=[],a=0;a<n.length;a++){var r=n[a],c=i[r.id];c&&(c.refs--,o.push(c))}t&&l(s(t,e),e);for(var m=0;m<o.length;m++){var u=o[m];if(0===u.refs){for(var h=0;h<u.parts.length;h++)u.parts[h]();delete i[u.id]}}}}},function(t,e,n){"use strict";n.r(e);n(4),n(5),n(6),n(7),n(8),n(9),n(10),n(11),n(12),n(13),n(14),n(15),n(16),n(18);window.OCA.Comments=OCA.Comments},function(t,e){OCA.Comments||(OCA.Comments={})},function(t,e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o,i;o=Handlebars.template,(i=OCA.Comments.Templates=OCA.Comments.Templates||{}).comment=o({1:function(t,e,n,o,i){return" unread"},3:function(t,e,n,o,i){return" collapsed"},5:function(t,e,n,o,i){return" currentUser"},7:function(t,e,n,o,i){var a;return'data-username="'+t.escapeExpression("function"==typeof(a=null!=(a=n.actorId||(null!=e?e.actorId:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"actorId",hash:{},data:i}):a)+'"'},9:function(t,e,n,o,i){return'\t\t\t<a href="#" class="action more icon icon-more has-tooltip"></a>\n\t\t\t<div class="deleteLoading icon-loading-small hidden"></div>\n'},11:function(t,e,n,o,i){return'\t\t<div class="message-overlay"></div>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m="function",u=t.escapeExpression;return'<li class="comment'+(null!=(r=o.if.call(l,null!=e?e.isUnread:e,{name:"if",hash:{},fn:t.program(1,a,0),inverse:t.noop,data:a}))?r:"")+(null!=(r=o.if.call(l,null!=e?e.isLong:e,{name:"if",hash:{},fn:t.program(3,a,0),inverse:t.noop,data:a}))?r:"")+'" data-id="'+u(n(s=null!=(s=o.id||(null!=e?e.id:e))?s:c)===m?s.call(l,{name:"id",hash:{},data:a}):s)+'">\n\t<div class="authorRow">\n\t\t<div class="avatar'+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(5,a,0),inverse:t.noop,data:a}))?r:"")+'" '+(null!=(r=o.if.call(l,null!=e?e.actorId:e,{name:"if",hash:{},fn:t.program(7,a,0),inverse:t.noop,data:a}))?r:"")+'> </div>\n\t\t<div class="author'+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(5,a,0),inverse:t.noop,data:a}))?r:"")+'">'+u(n(s=null!=(s=o.actorDisplayName||(null!=e?e.actorDisplayName:e))?s:c)===m?s.call(l,{name:"actorDisplayName",hash:{},data:a}):s)+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isUserAuthor:e,{name:"if",hash:{},fn:t.program(9,a,0),inverse:t.noop,data:a}))?r:"")+'\t\t<div class="date has-tooltip live-relative-timestamp" data-timestamp="'+u(n(s=null!=(s=o.timestamp||(null!=e?e.timestamp:e))?s:c)===m?s.call(l,{name:"timestamp",hash:{},data:a}):s)+'" title="'+u(n(s=null!=(s=o.altDate||(null!=e?e.altDate:e))?s:c)===m?s.call(l,{name:"altDate",hash:{},data:a}):s)+'">'+u(n(s=null!=(s=o.date||(null!=e?e.date:e))?s:c)===m?s.call(l,{name:"date",hash:{},data:a}):s)+'</div>\n\t</div>\n\t<div class="message">'+(null!=(r=n(s=null!=(s=o.formattedMessage||(null!=e?e.formattedMessage:e))?s:c)===m?s.call(l,{name:"formattedMessage",hash:{},data:a}):s)?r:"")+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isLong:e,{name:"if",hash:{},fn:t.program(11,a,0),inverse:t.noop,data:a}))?r:"")+"</li>\n"},useData:!0}),i.commentsmodifymenu=o({1:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m=t.escapeExpression;return'\t\t<li>\n\t\t\t<a href="#" class="menuitem action '+m("function"===n(s=null!=(s=o.name||(null!=e?e.name:e))?s:c)?s.call(l,{name:"name",hash:{},data:a}):s)+' permanent" data-action="'+m("function"===n(s=null!=(s=o.name||(null!=e?e.name:e))?s:c)?s.call(l,{name:"name",hash:{},data:a}):s)+'">\n'+(null!=(r=o.if.call(l,null!=e?e.iconClass:e,{name:"if",hash:{},fn:t.program(2,a,0),inverse:t.program(4,a,0),data:a}))?r:"")+"\t\t\t\t<span>"+m("function"===n(s=null!=(s=o.displayName||(null!=e?e.displayName:e))?s:c)?s.call(l,{name:"displayName",hash:{},data:a}):s)+"</span>\n\t\t\t</a>\n\t\t</li>\n"},2:function(t,e,n,o,i){var a;return'\t\t\t\t\t<span class="icon '+t.escapeExpression("function"==typeof(a=null!=(a=n.iconClass||(null!=e?e.iconClass:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"iconClass",hash:{},data:i}):a)+'"></span>\n'},4:function(t,e,n,o,i){return'\t\t\t\t\t<span class="no-icon"></span>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,n,o,i){var a;return"<ul>\n"+(null!=(a=n.each.call(null!=e?e:t.nullContext||{},null!=e?e.items:e,{name:"each",hash:{},fn:t.program(1,i,0),inverse:t.noop,data:i}))?a:"")+"</ul>\n"},useData:!0}),i.edit_comment=o({1:function(t,e,n,o,i){var a;return'\t\t\t<div class="action-container">\n\t\t\t\t<a href="#" class="action cancel icon icon-close has-tooltip" title="'+t.escapeExpression("function"==typeof(a=null!=(a=n.cancelText||(null!=e?e.cancelText:e))?a:n.helperMissing)?a.call(null!=e?e:t.nullContext||{},{name:"cancelText",hash:{},data:i}):a)+'"></a>\n\t\t\t</div>\n'},compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s,l=null!=e?e:t.nullContext||{},c=o.helperMissing,m="function",u=t.escapeExpression;return"<"+u(n(s=null!=(s=o.tag||(null!=e?e.tag:e))?s:c)===m?s.call(l,{name:"tag",hash:{},data:a}):s)+' class="newCommentRow comment" data-id="'+u(n(s=null!=(s=o.id||(null!=e?e.id:e))?s:c)===m?s.call(l,{name:"id",hash:{},data:a}):s)+'">\n\t<div class="authorRow">\n\t\t<div class="avatar currentUser" data-username="'+u(n(s=null!=(s=o.actorId||(null!=e?e.actorId:e))?s:c)===m?s.call(l,{name:"actorId",hash:{},data:a}):s)+'"></div>\n\t\t<div class="author currentUser">'+u(n(s=null!=(s=o.actorDisplayName||(null!=e?e.actorDisplayName:e))?s:c)===m?s.call(l,{name:"actorDisplayName",hash:{},data:a}):s)+"</div>\n"+(null!=(r=o.if.call(l,null!=e?e.isEditMode:e,{name:"if",hash:{},fn:t.program(1,a,0),inverse:t.noop,data:a}))?r:"")+'\t</div>\n\t<form class="newCommentForm">\n\t\t<div contentEditable="true" class="message" data-placeholder="'+u(n(s=null!=(s=o.newMessagePlaceholder||(null!=e?e.newMessagePlaceholder:e))?s:c)===m?s.call(l,{name:"newMessagePlaceholder",hash:{},data:a}):s)+'">'+u(n(s=null!=(s=o.message||(null!=e?e.message:e))?s:c)===m?s.call(l,{name:"message",hash:{},data:a}):s)+'</div>\n\t\t<input class="submit icon-confirm has-tooltip" type="submit" value="" title="'+u(n(s=null!=(s=o.submitText||(null!=e?e.submitText:e))?s:c)===m?s.call(l,{name:"submitText",hash:{},data:a}):s)+'"/>\n\t\t<div class="submitLoading icon-loading-small hidden"></div>\n\t</form>\n</'+u(n(s=null!=(s=o.tag||(null!=e?e.tag:e))?s:c)===m?s.call(l,{name:"tag",hash:{},data:a}):s)+">\n"},useData:!0}),i.filesplugin=o({compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s=null!=e?e:t.nullContext||{},l=o.helperMissing,c=t.escapeExpression;return'<a class="action action-comment permanent" title="'+c("function"===n(r=null!=(r=o.countMessage||(null!=e?e.countMessage:e))?r:l)?r.call(s,{name:"countMessage",hash:{},data:a}):r)+'" href="#">\n\t<img class="svg" src="'+c("function"===n(r=null!=(r=o.iconUrl||(null!=e?e.iconUrl:e))?r:l)?r.call(s,{name:"iconUrl",hash:{},data:a}):r)+'"/>\n</a>\n'},useData:!0}),i.view=o({compiler:[7,">= 4.0.0"],main:function(t,e,o,i,a){var r,s=null!=e?e:t.nullContext||{},l=o.helperMissing,c=t.escapeExpression;return'<ul class="comments">\n</ul>\n<div class="emptycontent hidden"><div class="icon-comment"></div>\n\t<p>'+c("function"===n(r=null!=(r=o.emptyResultLabel||(null!=e?e.emptyResultLabel:e))?r:l)?r.call(s,{name:"emptyResultLabel",hash:{},data:a}):r)+'</p></div>\n<input type="button" class="showMore hidden" value="'+c("function"===n(r=null!=(r=o.moreLabel||(null!=e?e.moreLabel:e))?r:l)?r.call(s,{name:"moreLabel",hash:{},data:a}):r)+'" name="show-more" id="show-more" />\n<div class="loading hidden" style="height: 50px"></div>\n'},useData:!0})},function(t,e){!function(t,e){_.extend(t.Files.Client,{PROPERTY_FILEID:"{"+t.Files.Client.NS_OWNCLOUD+"}id",PROPERTY_MESSAGE:"{"+t.Files.Client.NS_OWNCLOUD+"}message",PROPERTY_ACTORTYPE:"{"+t.Files.Client.NS_OWNCLOUD+"}actorType",PROPERTY_ACTORID:"{"+t.Files.Client.NS_OWNCLOUD+"}actorId",PROPERTY_ISUNREAD:"{"+t.Files.Client.NS_OWNCLOUD+"}isUnread",PROPERTY_OBJECTID:"{"+t.Files.Client.NS_OWNCLOUD+"}objectId",PROPERTY_OBJECTTYPE:"{"+t.Files.Client.NS_OWNCLOUD+"}objectType",PROPERTY_ACTORDISPLAYNAME:"{"+t.Files.Client.NS_OWNCLOUD+"}actorDisplayName",PROPERTY_CREATIONDATETIME:"{"+t.Files.Client.NS_OWNCLOUD+"}creationDateTime",PROPERTY_MENTIONS:"{"+t.Files.Client.NS_OWNCLOUD+"}mentions"});var n=t.Backbone.Model.extend({sync:t.Backbone.davSync,defaults:{actorType:"users",objectType:"files"},davProperties:{id:t.Files.Client.PROPERTY_FILEID,message:t.Files.Client.PROPERTY_MESSAGE,actorType:t.Files.Client.PROPERTY_ACTORTYPE,actorId:t.Files.Client.PROPERTY_ACTORID,actorDisplayName:t.Files.Client.PROPERTY_ACTORDISPLAYNAME,creationDateTime:t.Files.Client.PROPERTY_CREATIONDATETIME,objectType:t.Files.Client.PROPERTY_OBJECTTYPE,objectId:t.Files.Client.PROPERTY_OBJECTID,isUnread:t.Files.Client.PROPERTY_ISUNREAD,mentions:t.Files.Client.PROPERTY_MENTIONS},parse:function(t){return{id:t.id,message:t.message,actorType:t.actorType,actorId:t.actorId,actorDisplayName:t.actorDisplayName,creationDateTime:t.creationDateTime,objectType:t.objectType,objectId:t.objectId,isUnread:"true"===t.isUnread,mentions:this._parseMentions(t.mentions)}},_parseMentions:function(t){if(_.isUndefined(t))return{};var e={};for(var n in t){var o=t[n];if(!_.isUndefined(o.localName)&&"mention"===o.localName){e[n]={};for(var i=o.firstChild;i;i=i.nextSibling)!_.isUndefined(i.localName)&&i.localName.startsWith("mention")&&(e[n][i.localName]=i.textContent)}}return e}});e.Comments.CommentModel=n}(OC,OCA)},function(t,e){!function(t,e){var n=t.Backbone.Collection.extend({sync:t.Backbone.davSync,model:e.Comments.CommentModel,_objectType:"files",_objectId:null,_endReached:!1,_limit:20,initialize:function(t,e){(e=e||{}).objectType&&(this._objectType=e.objectType),e.objectId&&(this._objectId=e.objectId)},url:function(){return t.linkToRemote("dav")+"/comments/"+encodeURIComponent(this._objectType)+"/"+encodeURIComponent(this._objectId)+"/"},setObjectId:function(t){this._objectId=t},hasMoreResults:function(){return!this._endReached},reset:function(){return this._endReached=!1,this._summaryModel=null,t.Backbone.Collection.prototype.reset.apply(this,arguments)},fetchNext:function(t){var e=this;if(!this.hasMoreResults())return null;var o='<?xml version="1.0" encoding="utf-8" ?>\n<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n <oc:limit>'+(this._limit+1)+"</oc:limit>\n <oc:offset>"+this.length+"</oc:offset>\n</oc:filter-comments>\n",i=(t=t||{}).success;return t=_.extend({remove:!1,parse:!0,data:o,davProperties:n.prototype.model.prototype.davProperties,success:function(n){if(n.length<=e._limit?e._endReached=!0:n=_.initial(n),!e.set(n,t))return!1;i&&i.apply(null,arguments),e.trigger("sync","REPORT",e,t)}},t),this.sync("REPORT",this,t)},getSummaryModel:function(){return this._summaryModel||(this._summaryModel=new e.Comments.CommentSummaryModel({id:this._objectId,objectType:this._objectType})),this._summaryModel},updateReadMarker:function(t,e){return e=e||{},this.getSummaryModel().save({readMarker:(t||new Date).toUTCString()},e)}});e.Comments.CommentCollection=n}(OC,OCA)},function(t,e){!function(t,e){_.extend(t.Files.Client,{PROPERTY_READMARKER:"{"+t.Files.Client.NS_OWNCLOUD+"}readMarker"});var n=t.Backbone.Model.extend({sync:t.Backbone.davSync,_objectType:"files",_objectId:null,davProperties:{readMarker:t.Files.Client.PROPERTY_READMARKER},initialize:function(t,e){(e=e||{}).objectType&&(this._objectType=e.objectType)},url:function(){return t.linkToRemote("dav")+"/comments/"+encodeURIComponent(this._objectType)+"/"+encodeURIComponent(this.id)+"/"}});e.Comments.CommentSummaryModel=n}(OC,OCA)},function(e,n){!function(e,n){var o=n.Files.DetailTabView.extend({id:"commentsTabView",className:"tab commentsTabView",_autoCompleteData:void 0,_commentsModifyMenu:void 0,events:{"submit .newCommentForm":"_onSubmitComment","click .showMore":"_onClickShowMore","click .cancel":"_onClickCloseComment","click .comment":"_onClickComment","keyup div.message":"_onTextChange","change div.message":"_onTextChange","input div.message":"_onTextChange","paste div.message":"_onPaste"},_commentMaxLength:1e3,initialize:function(){n.Files.DetailTabView.prototype.initialize.apply(this,arguments),this.collection=new n.Comments.CommentCollection,this.collection.on("request",this._onRequest,this),this.collection.on("sync",this._onEndRequest,this),this.collection.on("add",this._onAddModel,this),this.collection.on("change:message",this._onChangeModel,this),this._commentMaxThreshold=.9*this._commentMaxLength,_.bindAll(this,"_onTypeComment","_initAutoComplete","_onAutoComplete")},template:function(t){var o=e.getCurrentUser();return n.Comments.Templates.view(_.extend({actorId:o.uid,actorDisplayName:o.displayName},t))},editCommentTemplate:function(o){var i=e.getCurrentUser();return n.Comments.Templates.edit_comment(_.extend({actorId:i.uid,actorDisplayName:i.displayName,newMessagePlaceholder:t("comments","New comment …"),submitText:t("comments","Post"),cancelText:t("comments","Cancel"),tag:"li"},o))},commentTemplate:function(o){return"deleted_users"===(o=_.extend({editTooltip:t("comments","Edit comment"),isUserAuthor:e.getCurrentUser().uid===o.actorId,isLong:this._isLong(o.message)},o)).actorType&&(o.actorId=null,o.actorDisplayName=t("comments","[Deleted user]")),n.Comments.Templates.comment(o)},getLabel:function(){return t("comments","Comments")},getIcon:function(){return"icon-comment"},setFileInfo:function(t){t?(this.model=t,this.render(),this._initAutoComplete($("#commentsTabView").find(".newCommentForm .message")),this.collection.setObjectId(this.model.id),this.collection.reset([],{silent:!0}),this.nextPage()):(this.model=null,this.render(),this.collection.reset())},render:function(){this.$el.html(this.template({emptyResultLabel:t("comments","No comments yet, start the conversation!"),moreLabel:t("comments","More comments …")})),this.$el.find(".comments").before(this.editCommentTemplate({tag:"div"})),this.$el.find(".has-tooltip").tooltip(),this.$container=this.$el.find("ul.comments"),this.$el.find(".avatar").avatar(e.getCurrentUser().uid,32),this.delegateEvents(),this.$el.find(".message").on("keydown input change",this._onTypeComment),autosize(this.$el.find(".newCommentRow .message")),this.$el.find(".newCommentForm .message").focus()},_initAutoComplete:function(t){var n=this,o=10;_.isUndefined(e.appConfig.comments)||(o=e.appConfig.comments.maxAutoCompleteResults),t.atwho({at:"@",limit:o,callbacks:{remoteFilter:n._onAutoComplete,highlighter:function(t){var e=$(t);return e.find(".avatar").avatar(void 0,32),e},sorter:function(t,e){return e}},displayTpl:function(t){return'<li><span class="avatar-name-wrapper"><span class="avatar" data-username="'+escapeHTML(t.id)+'" data-user="'+escapeHTML(t.id)+'" data-user-display-name="'+escapeHTML(t.label)+'"></span><strong>'+escapeHTML(t.label)+"</strong></span></li>"},insertTpl:function(t){return'<span class="avatar-name-wrapper"><span class="avatar" data-username="'+escapeHTML(t.id)+'" data-user="'+escapeHTML(t.id)+'" data-user-display-name="'+escapeHTML(t.label)+'"></span><strong>'+escapeHTML(t.label)+"</strong></span>"},searchKey:"label"}),t.on("inserted.atwho",function(t,e){n._postRenderItem($(t.target).find('span[data-username="'+e.find("[data-username]").data("username")+'"]').parent(),!0)})},_onAutoComplete:function(t,n){var o=this;_.isUndefined(this._autoCompleteRequestTimer)||clearTimeout(this._autoCompleteRequestTimer),this._autoCompleteRequestTimer=_.delay(function(){_.isUndefined(this._autoCompleteRequestCall)||this._autoCompleteRequestCall.abort(),this._autoCompleteRequestCall=$.ajax({url:e.linkToOCS("core",2)+"autocomplete/get",data:{search:t,itemType:"files",itemId:o.model.get("id"),sorter:"commenters|share-recipients",limit:e.appConfig.comments.maxAutoCompleteResults},beforeSend:function(t){t.setRequestHeader("Accept","application/json")},success:function(t){n(t.ocs.data)}})},400)},_formatItem:function(t){var n=new Date(t.get("creationDateTime")).getTime();return _.extend({timestamp:n,date:e.Util.relativeModifiedDate(n),altDate:e.Util.formatDate(n),formattedMessage:this._formatMessage(t.get("message"),t.get("mentions"))},t.attributes)},_toggleLoading:function(t){this._loading=t,this.$el.find(".loading").toggleClass("hidden",!t)},_onRequest:function(t){"REPORT"===t&&(this._toggleLoading(!0),this.$el.find(".showMore").addClass("hidden"))},_onEndRequest:function(t){var e=this.model;(this._toggleLoading(!1),this.$el.find(".emptycontent").toggleClass("hidden",!!this.collection.length),this.$el.find(".showMore").toggleClass("hidden",!this.collection.hasMoreResults()),"REPORT"===t)&&(this.collection.findWhere({isUnread:!0})&&this.collection.updateReadMarker(null,{success:function(){e.set("commentsUnread",0)}}),this.$el.find(".newCommentForm .message").focus())},_onAddModel:function(t,e,n){var o=$(this.commentTemplate(this._formatItem(t)));!_.isUndefined(n.at)&&e.length>1?this.$container.find("li").eq(n.at).before(o):this.$container.append(o),this._postRenderItem(o),$("#commentsTabView").find(".newCommentForm div.message").text("").prop("contenteditable",!0);var i=t.get("mentions"),a=this;t.fetch({success:function(t){if(!_.isEqual(i,t.get("mentions"))){var e=$(a.commentTemplate(a._formatItem(t)));o.html(e.html()),a._postRenderItem(o)}}})},_onChangeModel:function(t){if(t.get("message").trim()!==t.previous("message").trim()){var e=this.$container.find('.comment[data-id="'+t.id+'"] form').closest(".comment"),n=e.data("commentEl");if(!_.isUndefined(n)){var o=this;t.fetch({success:function(t){n.removeClass("hidden"),e.remove();var i=n.find(".message");i.html(o._formatMessage(t.get("message"),t.get("mentions"))).find(".avatar").each(function(){$(this).avatar()}),o._postRenderItem(i)}})}}},_postRenderItem:function(t,o){t.find(".has-tooltip").tooltip();var i=t.find(".message .avatar");$(t.context).hasClass("message")&&(i=t.find(".avatar")),i.each(function(){var t=$(this);t.avatar(t.attr("data-username"),16)}),t.find(".authorRow .avatar").each(function(){var t=$(this);t.avatar(t.attr("data-username"),32)});var a=t.find(".avatar").data("username");a!==e.getCurrentUser().uid&&t.find(".authorRow .avatar, .authorRow .author").contactsMenu(a,0,t.find(".authorRow"));var r=t.find(".message");if(0===r.length&&(r=t),!o){var s=this,l=new n.Comments.CommentsModifyMenu;t.find(".authorRow").append(l.$el),t.find(".more").on("click",_.bind(l.show,l)),s.listenTo(l,"select:menu-item-clicked",function(t,e){"edit"===e?s._onClickEditComment(t):"delete"===e&&s._onClickDeleteComment(t)})}this._postRenderMessage(r,o)},_postRenderMessage:function(t,n){n||t.find(".avatar-name-wrapper").each(function(){var t=$(this),n=t.find(".avatar").data("user");n!==e.getCurrentUser().uid&&t.contactsMenu(n,0,t)})},_formatMessage:function(t,e,n){for(var o in t=escapeHTML(t).replace(/\n/g,"<br/>"),e){if(!e.hasOwnProperty(o))return;var i="@"+e[o].mentionId;-1!==e[o].mentionId.indexOf(" ")&&(i=_.escape('@"'+e[o].mentionId+'"')),i=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");var a=new RegExp("(^|\\s)("+i+")\\b","g");-1!==e[o].mentionId.indexOf(" ")&&(a=new RegExp("(^|\\s)("+i+")","g"));var r=this._composeHTMLMention(e[o].mentionId,e[o].mentionDisplayName);t=t.replace(a,function(t,e){return e+r})}return!0!==n&&(t=OCP.Comments.plainToRich(t)),t},_composeHTMLMention:function(t,n){var o='<span class="avatar" data-username="'+_.escape(t)+'" data-user="'+_.escape(t)+'" data-user-display-name="'+_.escape(n)+'"></span>';return'<span class="atwho-inserted" contenteditable="false"><span class="avatar-name-wrapper'+(t===e.getCurrentUser().uid?" currentUser":"")+'">'+o+"<strong>"+_.escape(n)+"</strong></span></span>"},nextPage:function(){!this._loading&&this.collection.hasMoreResults()&&this.collection.fetchNext()},_onClickEditComment:function(e){e.preventDefault();var n=$(e.target).closest(".comment"),o=n.data("id"),i=this.collection.get(o),a=$(this.editCommentTemplate(_.extend({isEditMode:!0,submitText:t("comments","Save")},i.attributes)));n.addClass("hidden").removeClass("collapsed"),n.after(a),a.data("commentEl",n),a.find(".message").on("keydown input change",this._onTypeComment),a.find(".avatar:first").replaceWith(n.find(".avatar:first").clone()),a.find(".has-tooltip").tooltip();var r=a.find(".message");r.html(this._formatMessage(i.get("message"),i.get("mentions"),!0)).find(".avatar").each(function(){$(this).avatar()});return this._postRenderItem(r,!0),autosize(a.find(".message")),this._initAutoComplete(a.find(".message")),!1},_onTypeComment:function(e){var n=$(e.target),o=n.text().length,i=n.data("submitButtonEl");i||(i=n.closest("form").find(".submit"),n.data("submitButtonEl",i)),n.tooltip("hide"),o>this._commentMaxThreshold&&(n.attr("data-original-title",t("comments","Allowed characters {count} of {max}",{count:o,max:this._commentMaxLength})),n.tooltip({trigger:"manual"}),n.tooltip("show"),n.addClass("error"));var a=o>this._commentMaxLength;n.toggleClass("error",a),i.prop("disabled",a),13!==e.keyCode||e.shiftKey||n.atwho("isSelecting")||(i.click(),e.preventDefault())},_onClickComment:function(t){var e=$(t.target);e.is(".comment")||(e=e.closest(".comment")),e.removeClass("collapsed")},_onClickCloseComment:function(t){t.preventDefault();var e=$(t.target).closest(".comment");return e.data("commentEl").removeClass("hidden"),e.remove(),!1},_onClickDeleteComment:function(n){n.preventDefault();var o=$(n.target).closest(".comment"),i=o.data("id"),a=o.find(".deleteLoading"),r=o.find(".more");return o.addClass("disabled"),a.removeClass("hidden"),r.addClass("hidden"),o.data("commentEl",o),this.collection.get(i).destroy({success:function(){o.data("commentEl").remove(),o.remove()},error:function(){a.addClass("hidden"),r.removeClass("hidden"),o.removeClass("disabled"),e.Notification.showTemporary(t("comments","Error occurred while retrieving comment with ID {id}",{id:i}))}}),!1},_onClickShowMore:function(t){t.preventDefault(),this.nextPage()},_onSubmitSuccess:function(t,e){var n=e.find(".submit"),o=e.find(".submitLoading");n.removeClass("hidden"),o.addClass("hidden")},_commentBodyHTML2Plain:function(t){var e,n=t.clone();n.find(".avatar-name-wrapper").each(function(){var t=$(this),e=t.parent(),n=t.find(".avatar").data("username");-1!==n.indexOf(" ")?e.html('@"'+n+'"'):e.html("@"+n)}),n.html(OCP.Comments.richToPlain(n.html()));var o=n.html();do{o=(e=o).replace("<br>","\n")}while(e!==o);return n.html(o),n.text()},_onSubmitComment:function(t){var n=this,o=$(t.target),i=o.closest(".comment").data("id"),a=e.getCurrentUser(),r=o.find(".submit"),s=o.find(".submitLoading"),l=o.find(".message"),c=l.text().trim();if(t.preventDefault(),c.length&&!(c.length>this._commentMaxLength)){if(l.prop("contenteditable",!1),r.addClass("hidden"),s.removeClass("hidden"),c=this._commentBodyHTML2Plain(l),i)this.collection.get(i).save({message:c},{success:function(t){if(n._onSubmitSuccess(t,o),t.get("message").trim()===t.previous("message").trim()){var e=o.closest(".comment");e.data("commentEl").removeClass("hidden"),e.remove()}},error:function(){n._onSubmitError(o,i)}});else this.collection.create({actorId:a.uid,actorDisplayName:a.displayName,actorType:"users",verb:"comment",message:c,creationDateTime:(new Date).toUTCString()},{at:0,wait:!0,success:function(t){n._onSubmitSuccess(t,o)},error:function(){n._onSubmitError(o,void 0)}});return!1}},_onSubmitError:function(n,o){n.find(".submit").removeClass("hidden"),n.find(".submitLoading").addClass("hidden"),n.find(".message").prop("contenteditable",!0),_.isUndefined(o)?e.Notification.show(t("comments","Error occurred while posting comment"),{type:"error"}):e.Notification.show(t("comments","Error occurred while updating comment with id {id}",{id:o}),{type:"error"})},_onTextChange:function(){var t=$("#commentsTabView").find(".newCommentForm div.message");t.text().trim().length||t.empty()},_onPaste:function(t){t.preventDefault();var e=t.originalEvent.clipboardData.getData("text/plain");document.execCommand("insertText",!1,e)},_isLong:function(t){return t.length>250||(t.match(/\n/g)||[]).length>1}});n.Comments.CommentsTabView=o}(OC,OCA)},function(e,n){var o;OC,OCA,o=OC.Backbone.View.extend({tagName:"div",className:"commentsModifyMenu popovermenu bubble menu",_scopes:[{name:"edit",displayName:t("comments","Edit comment"),iconClass:"icon-rename"},{name:"delete",displayName:t("comments","Delete comment"),iconClass:"icon-delete"}],initialize:function(){},events:{"click a.action":"_onClickAction"},_onClickAction:function(t){var e=$(t.currentTarget);e.hasClass("menuitem")||(e=e.closest(".menuitem")),OC.hideMenus(),this.trigger("select:menu-item-clicked",t,e.data("action"))},render:function(){this.$el.html(OCA.Comments.Templates.commentsmodifymenu({items:this._scopes}))},show:function(t){for(var e in this._context=t,this._scopes)this._scopes[e].active=!1;var n=$(t.target),o=n.offset(),i=n.closest(".authorRow").offset(),a={top:o.top-i.top+48,left:"",right:""};a.left=o.left-i.left,a.left>200?(a.left="",a.right=this.$el.closest(".comment").find(".date").width(),this.$el.removeClass("menu-left").addClass("menu-right")):this.$el.removeClass("menu-right").addClass("menu-left"),this.$el.css(a),this.render(),this.$el.removeClass("hidden"),OC.showMenu(null,this.$el)}}),OCA.Comments=OCA.Comments||{},OCA.Comments.CommentsModifyMenu=o},function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:function(t){return OCA.Comments.Templates.filesplugin({count:t,countMessage:n("comments","%n unread comment","%n unread comments",t),iconUrl:OC.imagePath("core","actions/comment")})},attach:function(e){var o=this;if(!(this.ignoreLists.indexOf(e.id)>=0)){e.registerTabView(new OCA.Comments.CommentsTabView("commentsTabView"));var i=e._getWebdavProperties;e._getWebdavProperties=function(){var t=i.apply(this,arguments);return t.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),t},e.filesClient.addFileInfoParser(function(t){var e={},n=t.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(n)||""===n||(e.commentsUnread=parseInt(n,10)),e}),e.$el.addClass("has-comments");var a=e._createRow;e._createRow=function(t){var e=a.apply(this,arguments);return t.commentsUnread&&e.attr("data-comments-unread",t.commentsUnread),e},e.fileActions.registerAction({name:"Comment",displayName:function(e){if(e&&e.$file){var o=parseInt(e.$file.data("comments-unread"),10);if(o>=0)return n("comments","1 new comment","{unread} new comments",o,{unread:o})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render:function(t,e,n){var i=n.$file.data("comments-unread");if(i){var a=$(o._formatCommentCount(i));return n.$file.find("a.name>span.fileactions").append(a),a}return""},actionHandler:function(t,e){e.$file.find(".action-comment").tooltip("hide"),e.fileList.showDetailsView(t,"commentsTabView")}});var r=e.elementToFile;e.elementToFile=function(t){var e=r.apply(this,arguments),n=t.data("comments-unread");return n&&(e.commentsUnread=n),e}}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},function(t,e){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay:function(t,e,n){if("comments"===t.get("app")&&"comments"===t.get("type")&&"ActivityTabView"===n&&(e.addClass("comment"),t.get("message")&&this._isLong(t.get("message")))){e.addClass("collapsed");var o=$("<div>").addClass("message-overlay");e.find(".activitymessage").after(o),e.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment:function(t){var e=$(t.target);e.is(".comment")||(e=e.closest(".comment")),e.removeClass("collapsed")},_isLong:function(t){return t.length>250||(t.match(/\n/g)||[]).length>1}},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)},function(t,e){!function(t,e,n){"use strict";var o=function(){this.initialize()};o.prototype={fileList:null,initialize:function(){var o=this;this.fileAppLoaded=function(){return!!e.Files&&!!e.Files.App},this.renderCommentResult=function(e,o){var i;(i=n(".nofilterresults")).hasClass("hidden")||i.addClass("hidden"),this.updateLegacyMimetype(o);var a=n("<div>").addClass("path").text(o.path),r=n("<div>");r.addClass("avatar").css("display","inline-block").css("vertical-align","middle").css("margin","0 5px 2px 3px"),o.authorName?r.avatar(o.authorId,21,void 0,!1,void 0,o.authorName):r.avatar(o.authorId,21),e.find("td.info div.name").after(a).text(o.comment).prepend(n("<span>").addClass("path").css("margin-right","5px").text(o.authorName)).prepend(r),e.find("td.result a").attr("href",o.link),e.find("td.icon").css("background-image","url("+t.imagePath("core","actions/comment")+")").css("opacity",".4");var s=t.dirname(o.path);return s===o.path&&(s="/"),e.find("td.info a").attr("href",t.generateUrl("/apps/files/?dir={dir}&scrollto={scrollto}",{dir:s,scrollto:o.fileName})),e},this.handleCommentClick=function(e,n,i){return!o.fileAppLoaded()||"files"!==o.fileList.id||(o.fileList.changeDirectory(t.dirname(n.path)),o.fileList.scrollTo(n.name),!1)},this.updateLegacyMimetype=function(t){!t.mime&&t.mime_type&&(t.mime=t.mime_type)},this.setFileList=function(t){this.fileList=t},t.Plugins.register("OCA.Search.Core",this)},attach:function(t){t.setRenderer("comment",this.renderCommentResult.bind(this)),t.setHandler("comment",this.handleCommentClick.bind(this))}},e.Search.comment=new o}(OC,OCA,$)},function(t,e,n){var o,i,a;a=this,o=[n(0)],void 0===(i=function(t){return a.returnExportsGlobal=function(t){"use strict";var e,n,o,i,a,r,s,l;e=function(){function e(t){this.$inputor=t,this.domInputor=this.$inputor[0]}return e.prototype.setPos=function(){return this.domInputor},e.prototype.getIEPosition=function(){return this.getPosition()},e.prototype.getPosition=function(){var t,e;return e=this.getOffset(),t=this.$inputor.offset(),e.left-=t.left,e.top-=t.top,e},e.prototype.getOldIEPos=function(){var t,e;return e=r.selection.createRange(),(t=r.body.createTextRange()).moveToElementText(this.domInputor),t.setEndPoint("EndToEnd",e),t.text.length},e.prototype.getPos=function(){var t,e,n;return(n=this.range())?((t=n.cloneRange()).selectNodeContents(this.domInputor),t.setEnd(n.endContainer,n.endOffset),e=t.toString().length,t.detach(),e):r.selection?this.getOldIEPos():void 0},e.prototype.getOldIEOffset=function(){var t,e;return(t=r.selection.createRange().duplicate()).moveStart("character",-1),{height:(e=t.getBoundingClientRect()).bottom-e.top,left:e.left,top:e.top}},e.prototype.getOffset=function(){var e,n,o,i,a;return s.getSelection&&(o=this.range())?(o.endOffset-1>0&&o.endContainer===!this.domInputor&&((e=o.cloneRange()).setStart(o.endContainer,o.endOffset-1),e.setEnd(o.endContainer,o.endOffset),n={height:(i=e.getBoundingClientRect()).height,left:i.left+i.width,top:i.top},e.detach()),n&&0!==(null!=n?n.height:void 0)||(e=o.cloneRange(),a=t(r.createTextNode("|")),e.insertNode(a[0]),e.selectNode(a[0]),n={height:(i=e.getBoundingClientRect()).height,left:i.left,top:i.top},a.remove(),e.detach())):r.selection&&(n=this.getOldIEOffset()),n&&(n.top+=t(s).scrollTop(),n.left+=t(s).scrollLeft()),n},e.prototype.range=function(){var t;if(s.getSelection)return(t=s.getSelection()).rangeCount>0?t.getRangeAt(0):null},e}(),n=function(){function e(t){this.$inputor=t,this.domInputor=this.$inputor[0]}return e.prototype.getIEPos=function(){var t,e,n,o,i,a;return e=this.domInputor,o=0,(i=r.selection.createRange())&&i.parentElement()===e&&(n=e.value.replace(/\r\n/g,"\n").length,(a=e.createTextRange()).moveToBookmark(i.getBookmark()),(t=e.createTextRange()).collapse(!1),o=a.compareEndPoints("StartToEnd",t)>-1?n:-a.moveStart("character",-n)),o},e.prototype.getPos=function(){return r.selection?this.getIEPos():this.domInputor.selectionStart},e.prototype.setPos=function(t){var e,n;return e=this.domInputor,r.selection?((n=e.createTextRange()).move("character",t),n.select()):e.setSelectionRange&&e.setSelectionRange(t,t),e},e.prototype.getIEOffset=function(t){var e;return e=this.domInputor.createTextRange(),t||(t=this.getPos()),e.move("character",t),{left:e.boundingLeft,top:e.boundingTop,height:e.boundingHeight}},e.prototype.getOffset=function(e){var n,o,i;return n=this.$inputor,r.selection?((o=this.getIEOffset(e)).top+=t(s).scrollTop()+n.scrollTop(),o.left+=t(s).scrollLeft()+n.scrollLeft(),o):(o=n.offset(),i=this.getPosition(e),o={left:o.left+i.left-n.scrollLeft(),top:o.top+i.top-n.scrollTop(),height:i.height})},e.prototype.getPosition=function(t){var e,n,i,a,r;return e=this.$inputor,i=function(t){return t=t.replace(/<|>|`|"|&/g,"?").replace(/\r\n|\r|\n/g,"<br/>"),/firefox/i.test(navigator.userAgent)&&(t=t.replace(/\s/g,"&nbsp;")),t},void 0===t&&(t=this.getPos()),r=e.val().slice(0,t),n=e.val().slice(t),a="<span style='position: relative; display: inline;'>"+i(r)+"</span>",a+="<span id='caret' style='position: relative; display: inline;'>|</span>",a+="<span style='position: relative; display: inline;'>"+i(n)+"</span>",new o(e).create(a).rect()},e.prototype.getIEPosition=function(t){var e,n;return n=this.getIEOffset(t),e=this.$inputor.offset(),{left:n.left-e.left,top:n.top-e.top,height:n.height}},e}(),o=function(){function e(t){this.$inputor=t}return e.prototype.css_attr=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","boxSizing","fontFamily","fontSize","fontWeight","height","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","outlineWidth","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textOverflow","textTransform","whiteSpace","wordBreak","wordWrap"],e.prototype.mirrorCss=function(){var e,n=this;return e={position:"absolute",left:-9999,top:0,zIndex:-2e4},"TEXTAREA"===this.$inputor.prop("tagName")&&this.css_attr.push("width"),t.each(this.css_attr,function(t,o){return e[o]=n.$inputor.css(o)}),e},e.prototype.create=function(e){return this.$mirror=t("<div></div>"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(e),this.$inputor.after(this.$mirror),this},e.prototype.rect=function(){var t,e,n;return n={left:(e=(t=this.$mirror.find("#caret")).position()).left,top:e.top,height:t.height()},this.$mirror.remove(),n},e}(),i={contentEditable:function(t){return!(!t[0].contentEditable||"true"!==t[0].contentEditable)}},a={pos:function(t){return t||0===t?this.setPos(t):this.getPos()},position:function(t){return r.selection?this.getIEPosition(t):this.getPosition(t)},offset:function(t){return this.getOffset(t)}},r=null,s=null,l=function(t){var e;return(e=null!=t?t.iframe:void 0)?(s=e.contentWindow,r=e.contentDocument||s.document):(s=window,r=document)},t.fn.caret=function(o,r,s){var c;return a[o]?(t.isPlainObject(r)?(l(r),r=void 0):l(s),c=i.contentEditable(this)?new e(this):new n(this),a[o].apply(c,[r])):t.error("Method "+o+" does not exist on jQuery.caret")},t.fn.caret.EditableCaret=e,t.fn.caret.InputCaret=n,t.fn.caret.Utils=i,t.fn.caret.apis=a}(t)}.apply(e,o))||(t.exports=i)},function(t,e,n){var o,i;function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}o=[n(0)],void 0===(i=function(t){return function(t){var e,n,o;n={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return i.arrayToDefaultHash(t)},matcher:function(t,e,n,o){var i,a,r;return t=t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),n&&(t="(?:^|\\s)"+t),i=decodeURI("%C3%80"),a=decodeURI("%C3%BF"),(r=new RegExp(t+"([A-Za-z"+i+"-"+a+"0-9_"+(o?" ":"")+"'.+-]*)$|"+t+"([^\\x00-\\xff]*)$","gi").exec(e))?r[2]||r[1]:null},filter:function(t,e,n){var o,i,a,r;for(o=[],i=0,r=e.length;r>i;i++)a=e[i],~new String(a[n]).toLowerCase().indexOf(t.toLowerCase())&&o.push(a);return o},remoteFilter:null,sorter:function(t,e,n){var o,i,a,r;if(!t)return e;for(o=[],i=0,r=e.length;r>i;i++)(a=e[i]).atwho_order=new String(a[n]).toLowerCase().indexOf(t.toLowerCase()),a.atwho_order>-1&&o.push(a);return o.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var n;n=t;try{return"string"!=typeof t&&(n=t(e)),n.replace(/\$\{([^\}]*)\}/g,function(t,n,o){return e[n]})}catch(t){return""}},highlighter:function(t,e){var n;return e?(n=new RegExp(">\\s*([^<]*?)("+e.replace("+","\\+")+")([^<]*)\\s*<","ig"),t.replace(n,function(t,e,n,o){return"> "+e+"<strong>"+n+"</strong>"+o+" <"})):t},beforeInsert:function(t,e,n){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}},o=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var n;return null!=(n=this.$el)&&n.remove(),t(e.body).append(this.$el=t("<div class='atwho-container'></div>"))},e.prototype.setupRootElement=function(e,n){var o,i;if(null==n&&(n=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(i){if(o=i,this.iframe=null,t.fn.atwho.debug)throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n"+o)}}return this.createContainer((this.iframeAsRoot=n)?this.document:document)},e.prototype.controller=function(t){var e,n,o,i;if(this.aliasMaps[t])n=this.controllers[this.aliasMaps[t]];else for(o in i=this.controllers)if(e=i[o],o===t){n=e;break}return n||this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var n,o;return o=(n=this.controllers)[t]||(n[t]=this.$inputor.is("[contentEditable]")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),o.init(e),this},e.prototype.listen=function(){return this.$inputor.on("compositionstart",function(t){return function(e){var n;return null!=(n=t.controller())&&n.view.hide(),t.isComposing=!0,null}}(this)).on("compositionend",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on("keyup.atwhoInner",function(t){return function(e){return t.onKeyup(e)}}(this)).on("keydown.atwhoInner",function(t){return function(e){return t.onKeydown(e)}}(this)).on("blur.atwhoInner",function(t){return function(e){var n;return(n=t.controller())?(n.expectedQueryCBId=null,n.view.hide(e,n.getOpt("displayTimeout"))):void 0}}(this)).on("click.atwhoInner",function(t){return function(e){return t.dispatch(e)}}(this)).on("scroll.atwhoInner",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(n){var o,i;return o=n.target.scrollTop,e!==o&&null!=(i=t.controller())&&i.view.hide(n),e=o,!0}}}(this)())},e.prototype.shutdown=function(){var t,e;for(t in e=this.controllers)e[t].destroy(),delete this.controllers[t];return this.$inputor.off(".atwhoInner"),this.$el.remove()},e.prototype.dispatch=function(t){var e,n,o,i;for(e in i=[],o=this.controllers)n=o[e],i.push(n.lookUp(t));return i},e.prototype.onKeyup=function(e){var o;switch(e.keyCode){case n.ESC:e.preventDefault(),null!=(o=this.controller())&&o.view.hide();break;case n.DOWN:case n.UP:case n.CTRL:case n.ENTER:t.noop();break;case n.P:case n.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var o,i;if((i=null!=(o=this.controller())?o.view:void 0)&&i.visible())switch(e.keyCode){case n.ESC:e.preventDefault(),i.hide(e);break;case n.UP:e.preventDefault(),i.prev();break;case n.DOWN:e.preventDefault(),i.next();break;case n.P:if(!e.ctrlKey)return;e.preventDefault(),i.prev();break;case n.N:if(!e.ctrlKey)return;e.preventDefault(),i.next();break;case n.TAB:case n.ENTER:case n.SPACE:if(!i.visible())return;if(!this.controller().getOpt("spaceSelectsMatch")&&e.keyCode===n.SPACE)return;if(!this.controller().getOpt("tabSelectsMatch")&&e.keyCode===n.TAB)return;i.highlighted()?(e.preventDefault(),i.choose(e)):i.hide(e);break;default:t.noop()}},e}();var i,r=[].slice;i=function(){function n(e,n){this.app=e,this.at=n,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t("#atwho-ground-"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t("<div id='atwho-ground-"+this.id+"'></div>")),this.model=new c(this),this.view=new m(this)}return n.prototype.uid=function(){return(Math.random().toString(16)+"000000000").substr(2,8)+(new Date).getTime()},n.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho.default,e),this.view.init(),this.model.reload(this.setting.data)},n.prototype.destroy=function(){return this.trigger("beforeDestroy"),this.model.destroy(),this.view.destroy(),this.$el.remove()},n.prototype.callDefault=function(){var n,o,i,a;a=arguments[0],n=2<=arguments.length?r.call(arguments,1):[];try{return e[a].apply(this,n)}catch(i){return o=i,t.error(o+" Or maybe At.js doesn't have function "+a)}},n.prototype.trigger=function(t,e){var n,o;return null==e&&(e=[]),e.push(this),o=(n=this.getOpt("alias"))?t+"-"+n+".atwho":t+".atwho",this.$inputor.trigger(o,e)},n.prototype.callbacks=function(t){return this.getOpt("callbacks")[t]||e[t]},n.prototype.getOpt=function(t,e){try{return this.setting[t]}catch(t){return null}},n.prototype.insertContentFor=function(e){var n,o;return o=this.getOpt("insertTpl"),n=t.extend({},e.data("item-data"),{"atwho-at":this.at}),this.callbacks("tplEval").call(this,o,n,"onInsert")},n.prototype.renderView=function(t){var e;return e=this.getOpt("searchKey"),t=this.callbacks("sorter").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt("limit")))},n.arrayToDefaultHash=function(e){var n,o,i,a;if(!t.isArray(e))return e;for(a=[],n=0,i=e.length;i>n;n++)o=e[n],t.isPlainObject(o)?a.push(o):a.push({name:o});return a},n.prototype.lookUp=function(t){var e,n;if((!t||"click"!==t.type||this.getOpt("lookUpOnClick"))&&(!this.getOpt("suspendOnComposing")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(n=this.getOpt("delay"))?this._delayLookUp(e,n):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},n.prototype._delayLookUp=function(t,e){var n,o;return n=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=n),(o=e-(n-this.previousCallTime))>0&&e>o?(this.previousCallTime=n,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==n&&(this.previousCallTime=0),this._lookUp(t))},n.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},n.prototype._generateQueryCBId=function(){return{}},n.prototype._lookUp=function(e){var n;return n=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(n,this,this.expectedQueryCBId))},n}();var s,l,c,m,u,h=function(t,e){function n(){this.constructor=t}for(var o in e)d.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty;s=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return h(n,i),n.prototype.catchQuery=function(){var t,e,n,o,i,a,r;return e=this.$inputor.val(),t=this.$inputor.caret("pos",{iframe:this.app.iframe}),r=e.slice(0,t),(o="string"==typeof(i=this.callbacks("matcher").call(this,this.at,r,this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar"))))&&i.length<this.getOpt("minLen",0)?void 0:(o&&i.length<=this.getOpt("maxLen",20)?(n=(a=t-i.length)+i.length,this.pos=a,i={text:i,headPos:a,endPos:n},this.trigger("matched",[this.at,i.text])):(i=null,this.view.hide()),this.query=i)},n.prototype.rect=function(){var e,n,o;if(e=this.$inputor.caret("offset",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(n=t(this.app.iframe).offset(),e.left+=n.left,e.top+=n.top),o=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+o}},n.prototype.insert=function(t,e){var n,o,i,a,r;return r=""+(i=(o=(n=this.$inputor).val()).slice(0,Math.max(this.query.headPos-this.at.length,0)))+(t+=a=""===(a=this.getOpt("suffix"))?a:a||" ")+o.slice(this.query.endPos||0),n.val(r),n.caret("pos",i.length+t.length,{iframe:this.app.iframe}),n.is(":focus")||n.focus(),n.change()},n}(),h=function(t,e){function n(){this.constructor=t}for(var o in e)d.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty,l=function(e){function o(){return o.__super__.constructor.apply(this,arguments)}return h(o,i),o.prototype._getRange=function(){var t;return(t=this.app.window.getSelection()).rangeCount>0?t.getRangeAt(0):void 0},o.prototype._setRange=function(e,n,o){return null==o&&(o=this._getRange()),o&&n?(n=t(n)[0],"after"===e?(o.setEndAfter(n),o.setStartAfter(n)):(o.setEndBefore(n),o.setStartBefore(n)),o.collapse(!1),this._clearRange(o)):void 0},o.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},o.prototype._movingEvent=function(t){var e;return"click"===t.type||(e=t.which)===n.RIGHT||e===n.LEFT||e===n.UP||e===n.DOWN},o.prototype._unwrap=function(e){var n;return(n=(e=t(e).unwrap().get(0)).nextSibling)&&n.nodeValue&&(e.nodeValue+=n.nodeValue,t(n).remove()),e},o.prototype.catchQuery=function(e){var o,i,a,r,s,l,c,m,u,h,d,p;if((p=this._getRange())&&p.collapsed){if(e.which===n.ENTER)return(i=t(p.startContainer).closest(".atwho-query")).contents().unwrap(),i.is(":empty")&&i.remove(),(i=t(".atwho-query",this.app.document)).text(i.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(p.startContainer).is(this.$inputor))return void this._clearRange();e.which===n.BACKSPACE&&p.startContainer.nodeType===document.ELEMENT_NODE&&(u=p.startOffset-1)>=0?((a=p.cloneRange()).setStart(p.startContainer,u),t(a.cloneContents()).contents().last().is(".atwho-inserted")&&(s=t(p.startContainer).contents().get(u),this._setRange("after",t(s).contents().last()))):e.which===n.LEFT&&p.startContainer.nodeType===document.TEXT_NODE&&(o=t(p.startContainer.previousSibling)).is(".atwho-inserted")&&0===p.startOffset&&this._setRange("after",o.contents().last())}if(t(p.startContainer).closest(".atwho-inserted").addClass("atwho-query").siblings().removeClass("atwho-query"),(i=t(".atwho-query",this.app.document)).length>0&&i.is(":empty")&&0===i.text().length&&i.remove(),this._movingEvent(e)||i.removeClass("atwho-inserted"),i.length>0)switch(e.which){case n.LEFT:return this._setRange("before",i.get(0),p),void i.removeClass("atwho-query");case n.RIGHT:return this._setRange("after",i.get(0).nextSibling,p),void i.removeClass("atwho-query")}if(i.length>0&&(d=i.attr("data-atwho-at-query"))&&(i.empty().html(d).attr("data-atwho-at-query",null),this._setRange("after",i.get(0),p)),(a=p.cloneRange()).setStart(p.startContainer,0),l="string"==typeof(m=this.callbacks("matcher").call(this,this.at,a.toString(),this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar"))),0===i.length&&l&&(r=p.startOffset-this.at.length-m.length)>=0&&(p.setStart(p.startContainer,r),i=t("<span/>",this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass("atwho-query"),p.surroundContents(i.get(0)),(c=i.contents().last().get(0))&&(/firefox/i.test(navigator.userAgent)?(p.setStart(c,c.length),p.setEnd(c,c.length),this._clearRange(p)):this._setRange("after",c,p))),!(l&&m.length<this.getOpt("minLen",0)))return l&&m.length<=this.getOpt("maxLen",20)?(h={text:m,el:i},this.trigger("matched",[this.at,h.text]),this.query=h):(this.view.hide(),this.query={el:i},i.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&i.hasClass("atwho-inserted")?i.removeClass("atwho-query"):!1!==this.callbacks("afterMatchFailed").call(this,this.at,i)&&this._setRange("after",this._unwrap(i.text(i.text()).contents().first()))),null)}},o.prototype.rect=function(){var e,n;return(n=this.query.el.offset())&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(e=t(this.app.iframe).offset(),n.left+=e.left-this.$inputor.scrollLeft(),n.top+=e.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},o.prototype.insert=function(t,e){var n,o,i,a,r;return this.$inputor.is(":focus")||this.$inputor.focus(),(o=this.getOpt("functionOverrides")).insert?o.insert.call(this,t,e):(a=""===(a=this.getOpt("suffix"))?a:a||" ",n=e.data("item-data"),this.query.el.removeClass("atwho-query").addClass("atwho-inserted").html(t).attr("data-atwho-at-query",""+n["atwho-at"]+this.query.text).attr("contenteditable","false"),(i=this._getRange())&&(this.query.el.length&&i.setEndAfter(this.query.el[0]),i.collapse(!1),i.insertNode(r=this.app.document.createTextNode(""+a)),this._setRange("after",r,i)),this.$inputor.is(":focus")||this.$inputor.focus(),this.$inputor.change())},o}(),c=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var n,o,i;return o=this.fetch(),i=this.context.getOpt("searchKey"),o=this.context.callbacks("filter").call(this.context,t,o,i)||[],n=this.context.callbacks("remoteFilter"),o.length>0||!n&&0===o.length?e(o):n.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks("beforeSave").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return"string"==typeof e?t.ajax(e,{dataType:"json"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}(),m=function(){function e(e){this.context=e,this.$el=t("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt("alias")||this.context.at.charCodeAt(0),(t=this.context.getOpt("headerTpl"))&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:"at-view-"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,n,o;return e=this.$el.find("ul"),n=0,o=0,e.on("mousemove.atwho-view","li",function(i){var a;if((n!==i.clientX||o!==i.clientY)&&(n=i.clientX,o=i.clientY,!(a=t(i.currentTarget)).hasClass("cur")))return e.find(".cur").removeClass("cur"),a.addClass("cur")}).on("click.atwho-view","li",function(n){return function(o){return e.find(".cur").removeClass("cur"),t(o.currentTarget).addClass("cur"),n.choose(o),o.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(".cur").length>0},e.prototype.choose=function(t){var e,n;return(e=this.$el.find(".cur")).length&&(n=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks("beforeInsert").call(this.context,n,e,t),e),this.context.trigger("inserted",[e,t]),this.hide(t)),this.context.getOpt("hideWithoutSuffix")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var n,o,i,a;return n=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(n).scrollTop()>t(n).height()&&(e.bottom=e.top-this.$el.height()),e.left>(i=t(n).width()-this.$el.width()-5)&&(e.left=i),o={left:e.left,top:e.bottom},null!=(a=this.context.callbacks("beforeReposition"))&&a.call(this.context,o),this.$el.offset(o),this.context.trigger("reposition",[o])},e.prototype.next=function(){var t,e,n;return(t=this.$el.find(".cur").removeClass("cur").next()).length||(t=this.$el.find("li:first")),t.addClass("cur"),n=(e=t[0]).offsetTop+e.offsetHeight+(e.nextSibling?e.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,n;return(e=this.$el.find(".cur").removeClass("cur").prev()).length||(e=this.$el.find("li:last")),e.addClass("cur"),t=(n=e[0]).offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,t-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return(e=this.context.getOpt("scrollDuration"))?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger("shown")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var n;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger("hidden",[t])):(n=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(n,e))},e.prototype.render=function(e){var n,o,i,a,r,s,l;if(t.isArray(e)&&e.length>0){for(this.$el.find("ul").empty(),o=this.$el.find("ul"),l=this.context.getOpt("displayTpl"),i=0,r=e.length;r>i;i++)a=e[i],a=t.extend({},a,{"atwho-at":this.context.at}),s=this.context.callbacks("tplEval").call(this.context,l,a,"onDisplay"),(n=t(this.context.callbacks("highlighter").call(this.context,s,this.context.query.text))).data("item-data",a),o.append(n);return this.show(),this.context.getOpt("highlightFirst")?o.find("li:first").addClass("cur"):void 0}this.hide()},e}(),u={load:function(t,e){var n;return(n=this.controller(t))?n.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data("atwho",null)}},t.fn.atwho=function(e){var n,i;return n=arguments,i=null,this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function(){var r,s;return(s=(r=t(this)).data("atwho"))||r.data("atwho",s=new o(this)),"object"!=a(e)&&e?u[e]&&s?i=u[e].apply(s,Array.prototype.slice.call(n,1)):t.error("Method "+e+" does not exist on jQuery.atwho"):s.reg(e.at,e)}),null!=i?i:this},t.fn.atwho.default={at:void 0,alias:void 0,data:null,displayTpl:"<li>${name}</li>",insertTpl:"${atwho-at}${name}",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:"name",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1}(t)}.apply(e,o))||(t.exports=i)},function(t,e,n){var o=n(17);"string"==typeof o&&(o=[[t.i,o,""]]);var i={insert:"head",singleton:!1};n(2)(o,i);o.locals&&(t.exports=o.locals)},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"/**\n * based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,\n * only changed colors and font-weight\n */\n.atwho-view {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n margin-top: 18px;\n background: var(--color-main-background);\n color: var(--color-main-text);\n border: 1px solid var(--color-border);\n border-radius: var(--border-radius);\n box-shadow: 0 0 5px var(--color-box-shadow);\n min-width: 120px;\n z-index: 11110 !important; }\n\n.atwho-view .atwho-header {\n padding: 5px;\n margin: 5px;\n cursor: pointer;\n border-bottom: solid 1px var(--color-border);\n color: var(--color-main-text);\n font-size: 11px;\n font-weight: bold; }\n\n.atwho-view .atwho-header .small {\n color: var(--color-main-text);\n float: right;\n padding-top: 2px;\n margin-right: -5px;\n font-size: 12px;\n font-weight: normal; }\n\n.atwho-view .atwho-header:hover {\n cursor: default; }\n\n.atwho-view .cur {\n background: var(--color-primary);\n color: var(--color-primary-text); }\n\n.atwho-view .cur small {\n color: var(--color-primary-text); }\n\n.atwho-view strong {\n color: var(--color-main-text);\n font-weight: normal; }\n\n.atwho-view .cur strong {\n color: var(--color-primary-text);\n font-weight: normal; }\n\n.atwho-view ul {\n /* width: 100px; */\n list-style: none;\n padding: 0;\n margin: auto;\n max-height: 200px;\n overflow-y: auto; }\n\n.atwho-view ul li {\n display: block;\n padding: 5px 10px;\n border-bottom: 1px solid var(--color-border);\n cursor: pointer; }\n\n.atwho-view small {\n font-size: smaller;\n color: var(--color-main-text);\n font-weight: normal; }\n",""])},function(t,e,n){var o=n(19);"string"==typeof o&&(o=[[t.i,o,""]]);var i={insert:"head",singleton:!1};n(2)(o,i);o.locals&&(t.exports=o.locals)},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#commentsTabView .emptycontent {\n margin-top: 0; }\n\n#commentsTabView .newCommentForm {\n margin-left: 36px;\n position: relative; }\n\n#commentsTabView .newCommentForm .message {\n width: 100%;\n padding: 10px;\n min-height: 44px;\n margin: 0;\n /* Prevent the text from overlapping with the submit button. */\n padding-right: 30px; }\n\n#commentsTabView .newCommentForm .submit,\n#commentsTabView .newCommentForm .submitLoading {\n width: 44px;\n height: 44px;\n margin: 0;\n padding: 13px;\n background-color: transparent;\n border: none;\n opacity: .3;\n position: absolute;\n bottom: 0;\n right: 0; }\n\n#commentsTabView .deleteLoading {\n padding: 14px;\n vertical-align: middle; }\n\n#commentsTabView .newCommentForm .submit:not(:disabled):hover,\n#commentsTabView .newCommentForm .submit:not(:disabled):focus {\n opacity: 1; }\n\n#commentsTabView .newCommentForm div.message {\n resize: none; }\n\n#commentsTabView .newCommentForm div.message:empty:before {\n content: attr(data-placeholder);\n color: grey; }\n\n#commentsTabView .comment {\n position: relative;\n /** padding bottom is little more so that the top and bottom gap look uniform **/\n padding: 10px 0 15px; }\n\n#commentsTabView .comments .comment {\n border-top: 1px solid var(--color-border); }\n\n#commentsTabView .comment .avatar,\n.atwho-view-ul * .avatar {\n width: 32px;\n height: 32px;\n line-height: 32px;\n margin-right: 5px; }\n\n#commentsTabView .comment .message .avatar,\n.atwho-view-ul * .avatar {\n display: inline-block; }\n\n#activityTabView li.comment.collapsed .activitymessage,\n#commentsTabView .comment.collapsed .message {\n white-space: pre-wrap; }\n\n#activityTabView li.comment.collapsed .activitymessage,\n#commentsTabView .comment.collapsed .message {\n max-height: 70px;\n overflow: hidden; }\n\n#activityTabView li.comment .message-overlay,\n#commentsTabView .comment .message-overlay {\n display: none; }\n\n#activityTabView li.comment.collapsed .message-overlay,\n#commentsTabView .comment.collapsed .message-overlay {\n display: block;\n position: absolute;\n z-index: 2;\n height: 50px;\n pointer-events: none;\n left: 0;\n right: 0;\n bottom: 0;\n background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\n background-repeat: no-repeat; }\n\n#commentsTabView .hidden {\n display: none !important; }\n\n/** set min-height as 44px to ensure that it fits the button sizes. **/\n#commentsTabView .comment .authorRow {\n min-height: 44px; }\n\n#commentsTabView .comment .authorRow .tooltip {\n /** because of the padding on the element, the tooltip appear too far up,\n\t adding this brings them closer to the element**/\n margin-top: 5px; }\n\n.atwho-view-ul * .avatar-name-wrapper,\n#commentsTabView .comment .authorRow {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%; }\n\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,\n#commentsTabView .comment .authorRow .avatar:not(.currentUser),\n#commentsTabView .comment .authorRow .author:not(.currentUser) {\n cursor: pointer; }\n\n.atwho-view-ul .avatar-name-wrapper,\n.atwho-view-ul .avatar-name-wrapper .avatar,\n.atwho-view-ul .avatar-name-wrapper .avatar img {\n cursor: pointer; }\n\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper {\n /* Make the wrapper the positioning context of its child contacts\n\t\t * menu. */\n position: relative;\n display: inline;\n vertical-align: top;\n background-color: var(--color-background-dark);\n border-radius: 50vh;\n padding: 1px 7px 1px 1px;\n /* Ensure that the avatar and the user name will be kept together. */\n white-space: nowrap; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar {\n height: 16px;\n width: 16px;\n vertical-align: middle;\n padding: 1px;\n margin-top: -3px;\n margin-left: 0;\n margin-right: 2px; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img {\n vertical-align: top; }\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong {\n /* Ensure that the user name is shown in bold, as different browsers\n\t\t\t * use different font weights for strong elements. */\n font-weight: bold; }\n\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser {\n background-color: var(--color-primary);\n color: var(--color-primary-text); }\n\n.atwho-view-ul * .avatar-name-wrapper {\n white-space: nowrap; }\n\n#commentsTabView .comment .author,\n#commentsTabView .comment .date {\n opacity: .5; }\n\n#commentsTabView .comment .author {\n max-width: 210px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; }\n\n#commentsTabView .comment .date {\n margin-left: auto;\n /** this is to fix the tooltip being too close due to the margin-top applied\n\t to bring the tooltip closer for the action icons **/\n padding: 10px 0px; }\n\n#commentsTabView .comments > li:not(.newCommentRow) .message {\n padding-left: 40px;\n word-wrap: break-word;\n overflow-wrap: break-word; }\n\n#commentsTabView .comment .action {\n opacity: 0.3;\n padding: 14px;\n display: block; }\n\n#commentsTabView .comment .action:hover,\n#commentsTabView .comment .action:focus {\n opacity: 1; }\n\n#commentsTabView .newCommentRow .action-container {\n margin-left: auto; }\n\n#commentsTabView .comment.disabled .message {\n opacity: 0.3; }\n\n#commentsTabView .comment.disabled .action {\n display: none; }\n\n#commentsTabView .message.error {\n color: #e9322d;\n border-color: #e9322d;\n box-shadow: 0 0 6px #f8b9b7; }\n\n.app-files .action-comment {\n padding: 16px 14px; }\n\n#commentsTabView .comment .message .contactsmenu-popover {\n left: -6px;\n top: 24px; }\n",""])}]);
//# sourceMappingURL=comments.js.map \ No newline at end of file
diff --git a/apps/comments/js/comments.js.map b/apps/comments/js/comments.js.map
index 214126b05fa..618ef568346 100644
--- a/apps/comments/js/comments.js.map
+++ b/apps/comments/js/comments.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./apps/comments/src/comments.js","webpack:///./apps/comments/src/app.js","webpack:///./apps/comments/src/templates.js","webpack:///./apps/comments/src/commentmodel.js","webpack:///./apps/comments/src/commentcollection.js","webpack:///./apps/comments/src/commentsummarymodel.js","webpack:///./apps/comments/src/commentstabview.js","webpack:///./apps/comments/src/commentsmodifymenu.js","webpack:///./apps/comments/src/filesplugin.js","webpack:///./apps/comments/src/activitytabviewplugin.js","webpack:///./apps/comments/src/search.js","webpack:///./apps/comments/src/vendor/Caret.js/dist/jquery.caret.min.js","webpack:///./apps/comments/src/vendor/At.js/dist/js/jquery.atwho.min.js","webpack:///./apps/comments/src/style/autocomplete.scss?dc09","webpack:///./apps/comments/src/style/autocomplete.scss","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./apps/comments/src/style/comments.scss?1960","webpack:///./apps/comments/src/style/comments.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","useSourceMap","list","toString","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","_i","push","fn","memo","stylesInDom","isOldIE","window","document","all","atob","apply","arguments","getElement","target","parent","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","j","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","indexOf","splice","createStyleElement","createElement","undefined","attrs","type","nonce","nc","getNonce","addAttrs","el","keys","forEach","setAttribute","obj","update","remove","result","transform","default","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","styleSheet","cssText","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","__webpack_exports__","OCA","Comments","template","templates","Handlebars","Templates","1","container","depth0","helpers","partials","3","5","7","helper","escapeExpression","actorId","helperMissing","nullContext","hash","9","11","compiler","main","stack1","alias1","alias2","alias3","alias4","isUnread","program","inverse","noop","isLong","_typeof","isUserAuthor","actorDisplayName","timestamp","altDate","date","formattedMessage","useData","iconClass","displayName","2","4","each","items","cancelText","tag","isEditMode","newMessagePlaceholder","message","submitText","countMessage","iconUrl","emptyResultLabel","moreLabel","OC","_","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_MESSAGE","PROPERTY_ACTORTYPE","PROPERTY_ACTORID","PROPERTY_ISUNREAD","PROPERTY_OBJECTID","PROPERTY_OBJECTTYPE","PROPERTY_ACTORDISPLAYNAME","PROPERTY_CREATIONDATETIME","PROPERTY_MENTIONS","CommentModel","Backbone","Model","sync","davSync","defaults","actorType","objectType","davProperties","creationDateTime","objectId","mentions","parse","_parseMentions","isUndefined","mention","localName","child","startsWith","textContent","CommentCollection","Collection","model","_objectType","_objectId","_endReached","_limit","initialize","models","url","linkToRemote","setObjectId","hasMoreResults","reset","_summaryModel","fetchNext","self","body","success","resp","initial","set","trigger","getSummaryModel","CommentSummaryModel","updateReadMarker","save","readMarker","Date","toUTCString","PROPERTY_READMARKER","CommentsTabView","DetailTabView","className","_autoCompleteData","_commentsModifyMenu","events","submit .newCommentForm","click .showMore","click .cancel","click .comment","keyup div.message","change div.message","input div.message","paste div.message","_commentMaxLength","collection","on","_onRequest","_onEndRequest","_onAddModel","_onChangeModel","_commentMaxThreshold","bindAll","params","currentUser","getCurrentUser","uid","editCommentTemplate","commentTemplate","editTooltip","_isLong","getLabel","getIcon","setFileInfo","fileInfo","render","_initAutoComplete","$","find","silent","nextPage","$el","html","tooltip","$container","avatar","delegateEvents","_onTypeComment","autosize","focus","$target","limit","appConfig","comments","maxAutoCompleteResults","atwho","at","callbacks","remoteFilter","_onAutoComplete","highlighter","li","$li","sorter","q","displayTpl","escapeHTML","label","insertTpl","searchKey","je","_postRenderItem","query","callback","_autoCompleteRequestTimer","clearTimeout","delay","_autoCompleteRequestCall","abort","ajax","linkToOCS","search","itemType","itemId","beforeSend","request","setRequestHeader","ocs","_formatItem","commentModel","getTime","Util","relativeModifiedDate","formatDate","_formatMessage","attributes","_toggleLoading","state","_loading","toggleClass","addClass","fileInfoModel","findWhere","$comment","eq","append","text","prop","oldMentions","fetch","isEqual","$updated","trim","previous","$row","closest","removeClass","$message","editionMode","inlineAvatars","context","hasClass","$this","attr","username","contactsMenu","modifyCommentMenu","CommentsModifyMenu","show","listenTo","ev","action","_onClickEditComment","_onClickDeleteComment","_postRenderMessage","user","editMode","replace","mentionId","escape","regex","RegExp","_composeHTMLMention","mentionDisplayName","match","p1","OCP","plainToRich","preventDefault","commentId","commentToEdit","$formRow","after","replaceWith","clone","$field","len","$submitButton","count","max","limitExceeded","keyCode","shiftKey","click","_onClickComment","is","_onClickCloseComment","$loading","$moreIcon","destroy","error","Notification","showTemporary","_onClickShowMore","_onSubmitSuccess","$form","$submit","_commentBodyHTML2Plain","oldHtml","$inserted","userId","richToPlain","_onSubmitComment","$commentField","_onSubmitError","verb","wait","_onTextChange","empty","_onPaste","originalEvent","clipboardData","getData","execCommand","View","tagName","_scopes","click a.action","_onClickAction","event","currentTarget","hideMenus","_context","active","offsetIcon","offset","offsetContainer","position","top","left","right","width","showMenu","PROPERTY_COMMENTS_UNREAD","FilesPlugin","ignoreLists","_formatCommentCount","imagePath","attach","fileList","registerTabView","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","commentsUnread","propStat","properties","parseInt","oldCreateRow","_createRow","fileData","$tr","fileActions","registerAction","$file","unread","mime","order","permissions","PERMISSION_READ","FileActions","TYPE_INLINE","actionSpec","isDefault","unreadComments","$actionLink","actionHandler","fileName","showDetailsView","oldElementToFile","elementToFile","Plugins","register","ActivityTabViewPlugin","prepareModelForDisplay","view","$overlay","_onClickCollapsedComment","Comment","fileAppLoaded","App","renderCommentResult","$nofilterresults","updateLegacyMimetype","$pathDiv","path","$avatar","authorName","authorId","comment","prepend","dir","dirname","generateUrl","scrollto","handleCommentClick","changeDirectory","scrollTo","mime_type","setFileList","setRenderer","setHandler","Search","a","define","__WEBPACK_AMD_DEFINE_RESULT__","returnExportsGlobal","b","g","h","$inputor","domInputor","setPos","getIEPosition","getPosition","getOffset","getOldIEPos","selection","createRange","createTextRange","moveToElementText","setEndPoint","getPos","range","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","duplicate","moveStart","height","getBoundingClientRect","bottom","f","getSelection","setStart","insertNode","selectNode","scrollTop","scrollLeft","rangeCount","getRangeAt","getIEPos","parentElement","moveToBookmark","getBookmark","collapse","compareEndPoints","selectionStart","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","test","navigator","userAgent","val","slice","rect","css_attr","mirrorCss","zIndex","$mirror","contentEditable","pos","iframe","contentWindow","caret","isPlainObject","EditableCaret","InputCaret","Utils","apis","__WEBPACK_AMD_DEFINE_ARRAY__","ESC","TAB","ENTER","CTRL","A","P","N","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","arrayToDefaultHash","matcher","decodeURI","exec","String","toLowerCase","atwho_order","sort","tplEval","beforeInsert","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","ownerDocument","defaultView","parentWindow","frameElement","debug","iframeAsRoot","controller","setContextFor","reg","alias","init","hide","isComposing","setTimeout","dispatch","onKeyup","onKeydown","expectedQueryCBId","getOpt","shutdown","off","lookUp","ctrlKey","visible","prev","next","highlighted","choose","app","setting","u","Math","random","substr","reload","callDefault","insertContentFor","atwho-at","renderView","isArray","catchQuery","_delayLookUp","_lookUp","now","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","constructor","proxy","__super__","headPos","endPos","insert","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","removeAllRanges","addRange","_movingEvent","which","_unwrap","unwrap","nodeValue","collapsed","startContainer","contents","last","nodeType","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","surroundContents","first","getClientRects","storage","saved","load","_load","dataType","done","$elUl","children","timeoutID","bindEvent","charCodeAt","clientX","clientY","expr","filters","stopShowing","reposition","offsetTop","offsetHeight","animate","isNaN","isSelecting","setIframe","run","Array","headerTpl","functionOverrides","suffix","hideWithoutSuffix","startWithSpace","acceptSpaceBar","highlightFirst","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","hmr","locals","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1"],"mappings":"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","file":"comments.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = jQuery;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","import './app'\nimport './templates'\nimport './commentmodel'\nimport './commentcollection'\nimport './commentsummarymodel'\nimport './commentstabview'\nimport './commentsmodifymenu'\nimport './filesplugin'\nimport './activitytabviewplugin'\nimport './search'\n\nimport './vendor/Caret.js/dist/jquery.caret.min'\nimport './vendor/At.js/dist/js/jquery.atwho.min'\n\nimport './style/autocomplete.scss'\nimport './style/comments.scss'\n\nwindow.OCA.Comments = OCA.Comments;\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n})();\n\n","(function() {\n var template = Handlebars.template, templates = OCA.Comments.Templates = OCA.Comments.Templates || {};\ntemplates['comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" unread\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" collapsed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" currentUser\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"data-username=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<a href=\\\"#\\\" class=\\\"action more icon icon-more has-tooltip\\\"></a>\\n\t\t\t<div class=\\\"deleteLoading icon-loading-small hidden\\\"></div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<div class=\\\"message-overlay\\\"></div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<li class=\\\"comment\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUnread : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.actorId : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> </div>\\n\t\t<div class=\\\"author\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<div class=\\\"date has-tooltip live-relative-timestamp\\\" data-timestamp=\\\"\"\n + alias4(((helper = (helper = helpers.timestamp || (depth0 != null ? depth0.timestamp : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"timestamp\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.altDate || (depth0 != null ? depth0.altDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"altDate\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t</div>\\n\t<div class=\\\"message\\\">\"\n + ((stack1 = ((helper = (helper = helpers.formattedMessage || (depth0 != null ? depth0.formattedMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"formattedMessage\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</li>\\n\";\n},\"useData\":true});\ntemplates['commentsmodifymenu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"menuitem action \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \" permanent\\\" data-action=\\\"\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.iconClass : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t<span>\"\n + alias4(((helper = (helper = helpers.displayName || (depth0 != null ? depth0.displayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t<span class=\\\"icon \"\n + container.escapeExpression(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></span>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t<span class=\\\"no-icon\\\"></span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"<ul>\\n\"\n + ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['edit_comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t<div class=\\\"action-container\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"action cancel icon icon-close has-tooltip\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.cancelText || (depth0 != null ? depth0.cancelText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"cancelText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\t\t\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \" class=\\\"newCommentRow comment\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar currentUser\\\" data-username=\\\"\"\n + alias4(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></div>\\n\t\t<div class=\\\"author currentUser\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEditMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<form class=\\\"newCommentForm\\\">\\n\t\t<div contentEditable=\\\"true\\\" class=\\\"message\\\" data-placeholder=\\\"\"\n + alias4(((helper = (helper = helpers.newMessagePlaceholder || (depth0 != null ? depth0.newMessagePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newMessagePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t\t<input class=\\\"submit icon-confirm has-tooltip\\\" type=\\\"submit\\\" value=\\\"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.submitText || (depth0 != null ? depth0.submitText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"submitText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n\t\t<div class=\\\"submitLoading icon-loading-small hidden\\\"></div>\\n\t</form>\\n</\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \">\\n\";\n},\"useData\":true});\ntemplates['filesplugin'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<a class=\\\"action action-comment permanent\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.countMessage || (depth0 != null ? depth0.countMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"countMessage\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" href=\\\"#\\\">\\n\t<img class=\\\"svg\\\" src=\\\"\"\n + alias4(((helper = (helper = helpers.iconUrl || (depth0 != null ? depth0.iconUrl : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconUrl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n</a>\\n\";\n},\"useData\":true});\ntemplates['view'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<ul class=\\\"comments\\\">\\n</ul>\\n<div class=\\\"emptycontent hidden\\\"><div class=\\\"icon-comment\\\"></div>\\n\t<p>\"\n + alias4(((helper = (helper = helpers.emptyResultLabel || (depth0 != null ? depth0.emptyResultLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"emptyResultLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p></div>\\n<input type=\\\"button\\\" class=\\\"showMore hidden\\\" value=\\\"\"\n + alias4(((helper = (helper = helpers.moreLabel || (depth0 != null ? depth0.moreLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"moreLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" name=\\\"show-more\\\" id=\\\"show-more\\\" />\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_MESSAGE: \t'{' + OC.Files.Client.NS_OWNCLOUD + '}message',\n\t\tPROPERTY_ACTORTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',\n\t\tPROPERTY_ACTORID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',\n\t\tPROPERTY_ISUNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',\n\t\tPROPERTY_OBJECTID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',\n\t\tPROPERTY_OBJECTTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',\n\t\tPROPERTY_ACTORDISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',\n\t\tPROPERTY_CREATIONDATETIME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',\n\t\tPROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentModel\n\t * @classdesc\n\t *\n\t * Comment\n\t *\n\t */\n\tvar CommentModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\tdefaults: {\n\t\t\tactorType: 'users',\n\t\t\tobjectType: 'files'\n\t\t},\n\n\t\tdavProperties: {\n\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t'message':\tOC.Files.Client.PROPERTY_MESSAGE,\n\t\t\t'actorType':\tOC.Files.Client.PROPERTY_ACTORTYPE,\n\t\t\t'actorId':\tOC.Files.Client.PROPERTY_ACTORID,\n\t\t\t'actorDisplayName':\tOC.Files.Client.PROPERTY_ACTORDISPLAYNAME,\n\t\t\t'creationDateTime':\tOC.Files.Client.PROPERTY_CREATIONDATETIME,\n\t\t\t'objectType':\tOC.Files.Client.PROPERTY_OBJECTTYPE,\n\t\t\t'objectId':\tOC.Files.Client.PROPERTY_OBJECTID,\n\t\t\t'isUnread':\tOC.Files.Client.PROPERTY_ISUNREAD,\n\t\t\t'mentions': OC.Files.Client.PROPERTY_MENTIONS\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\treturn {\n\t\t\t\tid: data.id,\n\t\t\t\tmessage: data.message,\n\t\t\t\tactorType: data.actorType,\n\t\t\t\tactorId: data.actorId,\n\t\t\t\tactorDisplayName: data.actorDisplayName,\n\t\t\t\tcreationDateTime: data.creationDateTime,\n\t\t\t\tobjectType: data.objectType,\n\t\t\t\tobjectId: data.objectId,\n\t\t\t\tisUnread: (data.isUnread === 'true'),\n\t\t\t\tmentions: this._parseMentions(data.mentions)\n\t\t\t};\n\t\t},\n\n\t\t_parseMentions: function(mentions) {\n\t\t\tif(_.isUndefined(mentions)) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tvar result = {};\n\t\t\tfor(var i in mentions) {\n\t\t\t\tvar mention = mentions[i];\n\t\t\t\tif(_.isUndefined(mention.localName) || mention.localName !== 'mention') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tresult[i] = {};\n\t\t\t\tfor (var child = mention.firstChild; child; child = child.nextSibling) {\n\t\t\t\t\tif(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tresult[i][child.localName] = child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentModel = CommentModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @class OCA.Comments.CommentCollection\n\t * @classdesc\n\t *\n\t * Collection of comments assigned to a file\n\t *\n\t */\n\tvar CommentCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OCA.Comments.CommentCollection.prototype */ {\n\n\t\tsync: OC.Backbone.davSync,\n\n\t\tmodel: OCA.Comments.CommentModel,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\t/**\n\t\t * True if there are no more page results left to fetch\n\t\t *\n\t\t * @type bool\n\t\t */\n\t\t_endReached: false,\n\n\t\t/**\n\t\t * Number of comments to fetch per page\n\t\t *\n\t\t * @type int\n\t\t */\n\t\t_limit : 20,\n\n\t\t/**\n\t\t * Initializes the collection\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(models, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t\tif (options.objectId) {\n\t\t\t\tthis._objectId = options.objectId;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this._objectId) + '/';\n\t\t},\n\n\t\tsetObjectId: function(objectId) {\n\t\t\tthis._objectId = objectId;\n\t\t},\n\n\t\thasMoreResults: function() {\n\t\t\treturn !this._endReached;\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis._endReached = false;\n\t\t\tthis._summaryModel = null;\n\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Fetch the next set of results\n\t\t */\n\t\tfetchNext: function(options) {\n\t\t\tvar self = this;\n\t\t\tif (!this.hasMoreResults()) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar body = '<?xml version=\"1.0\" encoding=\"utf-8\" ?>\\n' +\n\t\t\t\t'<oc:filter-comments xmlns:D=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n' +\n\t\t\t\t// load one more so we know there is more\n\t\t\t\t' <oc:limit>' + (this._limit + 1) + '</oc:limit>\\n' +\n\t\t\t\t' <oc:offset>' + this.length + '</oc:offset>\\n' +\n\t\t\t\t'</oc:filter-comments>\\n';\n\n\t\t\toptions = options || {};\n\t\t\tvar success = options.success;\n\t\t\toptions = _.extend({\n\t\t\t\tremove: false,\n\t\t\t\tparse: true,\n\t\t\t\tdata: body,\n\t\t\t\tdavProperties: CommentCollection.prototype.model.prototype.davProperties,\n\t\t\t\tsuccess: function(resp) {\n\t\t\t\t\tif (resp.length <= self._limit) {\n\t\t\t\t\t\t// no new entries, end reached\n\t\t\t\t\t\tself._endReached = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// remove last entry, for next page load\n\t\t\t\t\t\tresp = _.initial(resp);\n\t\t\t\t\t}\n\t\t\t\t\tif (!self.set(resp, options)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tsuccess.apply(null, arguments);\n\t\t\t\t\t}\n\t\t\t\t\tself.trigger('sync', 'REPORT', self, options);\n\t\t\t\t}\n\t\t\t}, options);\n\n\t\t\treturn this.sync('REPORT', this, options);\n\t\t},\n\n\t\t/**\n\t\t * Returns the matching summary model\n\t\t *\n\t\t * @return {OCA.Comments.CommentSummaryModel} summary model\n\t\t */\n\t\tgetSummaryModel: function() {\n\t\t\tif (!this._summaryModel) {\n\t\t\t\tthis._summaryModel = new OCA.Comments.CommentSummaryModel({\n\t\t\t\t\tid: this._objectId,\n\t\t\t\t\tobjectType: this._objectType\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this._summaryModel;\n\t\t},\n\n\t\t/**\n\t\t * Updates the read marker for this comment thread\n\t\t *\n\t\t * @param {Date} [date] optional date, defaults to now\n\t\t * @param {Object} [options] backbone options\n\t\t */\n\t\tupdateReadMarker: function(date, options) {\n\t\t\toptions = options || {};\n\n\t\t\treturn this.getSummaryModel().save({\n\t\t\t\treadMarker: (date || new Date()).toUTCString()\n\t\t\t}, options);\n\t\t}\n\t});\n\n\tOCA.Comments.CommentCollection = CommentCollection;\n})(OC, OCA);\n\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_READMARKER:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}readMarker'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentSummaryModel\n\t * @classdesc\n\t *\n\t * Model containing summary information related to comments\n\t * like the read marker.\n\t *\n\t */\n\tvar CommentSummaryModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentSummaryModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\tdavProperties: {\n\t\t\t'readMarker': OC.Files.Client.PROPERTY_READMARKER\n\t\t},\n\n\t\t/**\n\t\t * Initializes the summary model\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(attrs, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this.id) + '/';\n\t\t}\n\t});\n\n\tOCA.Comments.CommentSummaryModel = CommentSummaryModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars, escapeHTML */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @memberof OCA.Comments\n\t */\n\tvar CommentsTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Comments.CommentsTabView.prototype */ {\n\t\tid: 'commentsTabView',\n\t\tclassName: 'tab commentsTabView',\n\t\t_autoCompleteData: undefined,\n\t\t_commentsModifyMenu: undefined,\n\n\t\tevents: {\n\t\t\t'submit .newCommentForm': '_onSubmitComment',\n\t\t\t'click .showMore': '_onClickShowMore',\n\t\t\t'click .cancel': '_onClickCloseComment',\n\t\t\t'click .comment': '_onClickComment',\n\t\t\t'keyup div.message': '_onTextChange',\n\t\t\t'change div.message': '_onTextChange',\n\t\t\t'input div.message': '_onTextChange',\n\t\t\t'paste div.message': '_onPaste'\n\t\t},\n\n\t\t_commentMaxLength: 1000,\n\n\t\tinitialize: function() {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);\n\t\t\tthis.collection = new OCA.Comments.CommentCollection();\n\t\t\tthis.collection.on('request', this._onRequest, this);\n\t\t\tthis.collection.on('sync', this._onEndRequest, this);\n\t\t\tthis.collection.on('add', this._onAddModel, this);\n\t\t\tthis.collection.on('change:message', this._onChangeModel, this);\n\n\t\t\tthis._commentMaxThreshold = this._commentMaxLength * 0.9;\n\n\t\t\t// TODO: error handling\n\t\t\t_.bindAll(this, '_onTypeComment', '_initAutoComplete', '_onAutoComplete');\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['view'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName\n\t\t\t}, params));\n\t\t},\n\n\t\teditCommentTemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['edit_comment'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\tnewMessagePlaceholder: t('comments', 'New comment …'),\n\t\t\t\tsubmitText: t('comments', 'Post'),\n\t\t\t\tcancelText: t('comments', 'Cancel'),\n\t\t\t\ttag: 'li'\n\t\t\t}, params));\n\t\t},\n\n\t\tcommentTemplate: function(params) {\n\t\t\tparams = _.extend({\n\t\t\t\teditTooltip: t('comments', 'Edit comment'),\n\t\t\t\tisUserAuthor: OC.getCurrentUser().uid === params.actorId,\n\t\t\t\tisLong: this._isLong(params.message)\n\t\t\t}, params);\n\n\t\t\tif (params.actorType === 'deleted_users') {\n\t\t\t\t// makes the avatar a X\n\t\t\t\tparams.actorId = null;\n\t\t\t\tparams.actorDisplayName = t('comments', '[Deleted user]');\n\t\t\t}\n\n\t\t\treturn OCA.Comments.Templates['comment'](params);\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('comments', 'Comments');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-comment';\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.model = fileInfo;\n\n\t\t\t\tthis.render();\n\t\t\t\tthis._initAutoComplete($('#commentsTabView').find('.newCommentForm .message'));\n\t\t\t\tthis.collection.setObjectId(this.model.id);\n\t\t\t\t// reset to first page\n\t\t\t\tthis.collection.reset([], {silent: true});\n\t\t\t\tthis.nextPage();\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t\tthis.render();\n\t\t\t\tthis.collection.reset();\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template({\n\t\t\t\temptyResultLabel: t('comments', 'No comments yet, start the conversation!'),\n\t\t\t\tmoreLabel: t('comments', 'More comments …')\n\t\t\t}));\n\t\t\tthis.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div'}));\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\t\t\tthis.$container = this.$el.find('ul.comments');\n\t\t\tthis.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);\n\t\t\tthis.delegateEvents();\n\t\t\tthis.$el.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\tautosize(this.$el.find('.newCommentRow .message'))\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t},\n\n\t\t_initAutoComplete: function($target) {\n\t\t\tvar s = this;\n\t\t\tvar limit = 10;\n\t\t\tif(!_.isUndefined(OC.appConfig.comments)) {\n\t\t\t\tlimit = OC.appConfig.comments.maxAutoCompleteResults;\n\t\t\t}\n\t\t\t$target.atwho({\n\t\t\t\tat: '@',\n\t\t\t\tlimit: limit,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tremoteFilter: s._onAutoComplete,\n\t\t\t\t\thighlighter: function (li) {\n\t\t\t\t\t\t// misuse the highlighter callback to instead of\n\t\t\t\t\t\t// highlighting loads the avatars.\n\t\t\t\t\t\tvar $li = $(li);\n\t\t\t\t\t\t$li.find('.avatar').avatar(undefined, 32);\n\t\t\t\t\t\treturn $li;\n\t\t\t\t\t},\n\t\t\t\t\tsorter: function (q, items) { return items; }\n\t\t\t\t},\n\t\t\t\tdisplayTpl: function (item) {\n\t\t\t\t\treturn '<li>' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span></li>';\n\t\t\t\t},\n\t\t\t\tinsertTpl: function (item) {\n\t\t\t\t\treturn '' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span>';\n\t\t\t\t},\n\t\t\t\tsearchKey: \"label\"\n\t\t\t});\n\t\t\t$target.on('inserted.atwho', function (je, $el) {\n\t\t\t\tvar editionMode = true;\n\t\t\t\ts._postRenderItem(\n\t\t\t\t\t// we need to pass the parent of the inserted element\n\t\t\t\t\t// passing the whole comments form would re-apply and request\n\t\t\t\t\t// avatars from the server\n\t\t\t\t\t$(je.target).find(\n\t\t\t\t\t\t'span[data-username=\"' + $el.find('[data-username]').data('username') + '\"]'\n\t\t\t\t\t).parent(),\n\t\t\t\t\teditionMode\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_onAutoComplete: function(query, callback) {\n\t\t\tvar s = this;\n\t\t\tif(!_.isUndefined(this._autoCompleteRequestTimer)) {\n\t\t\t\tclearTimeout(this._autoCompleteRequestTimer);\n\t\t\t}\n\t\t\tthis._autoCompleteRequestTimer = _.delay(function() {\n\t\t\t\tif(!_.isUndefined(this._autoCompleteRequestCall)) {\n\t\t\t\t\tthis._autoCompleteRequestCall.abort();\n\t\t\t\t}\n\t\t\t\tthis._autoCompleteRequestCall = $.ajax({\n\t\t\t\t\turl: OC.linkToOCS('core', 2) + 'autocomplete/get',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsearch: query,\n\t\t\t\t\t\titemType: 'files',\n\t\t\t\t\t\titemId: s.model.get('id'),\n\t\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\t\tlimit: OC.appConfig.comments.maxAutoCompleteResults\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function (request) {\n\t\t\t\t\t\trequest.setRequestHeader('Accept', 'application/json');\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function (result) {\n\t\t\t\t\t\tcallback(result.ocs.data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 400);\n\t\t},\n\n\t\t_formatItem: function(commentModel) {\n\t\t\tvar timestamp = new Date(commentModel.get('creationDateTime')).getTime();\n\t\t\tvar data = _.extend({\n\t\t\t\ttimestamp: timestamp,\n\t\t\t\tdate: OC.Util.relativeModifiedDate(timestamp),\n\t\t\t\taltDate: OC.Util.formatDate(timestamp),\n\t\t\t\tformattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))\n\t\t\t}, commentModel.attributes);\n\t\t\treturn data;\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function(type) {\n\t\t\tif (type === 'REPORT') {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t\tthis.$el.find('.showMore').addClass('hidden');\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function(type) {\n\t\t\tvar fileInfoModel = this.model;\n\t\t\tthis._toggleLoading(false);\n\t\t\tthis.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);\n\t\t\tthis.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());\n\n\t\t\tif (type !== 'REPORT') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find first unread comment\n\t\t\tvar firstUnreadComment = this.collection.findWhere({isUnread: true});\n\t\t\tif (firstUnreadComment) {\n\t\t\t\t// update read marker\n\t\t\t\tthis.collection.updateReadMarker(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\tfileInfoModel.set('commentsUnread', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was added to the\n\t\t * collection\n\t\t *\n\t\t * @param model\n\t\t * @param collection\n\t\t * @param options\n\t\t * @private\n\t\t */\n\t\t_onAddModel: function(model, collection, options) {\n\t\t\t// we need to render it immediately, to ensure that the right\n\t\t\t// order of comments is kept on opening comments tab\n\t\t\tvar $comment = $(this.commentTemplate(this._formatItem(model)));\n\t\t\tif (!_.isUndefined(options.at) && collection.length > 1) {\n\t\t\t\tthis.$container.find('li').eq(options.at).before($comment);\n\t\t\t} else {\n\t\t\t\tthis.$container.append($comment);\n\t\t\t}\n\t\t\tthis._postRenderItem($comment);\n\t\t\t$('#commentsTabView').find('.newCommentForm div.message').text('').prop('contenteditable', true);\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tvar oldMentions = model.get('mentions');\n\t\t\tvar self = this;\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\tif(_.isEqual(oldMentions, model.get('mentions'))) {\n\t\t\t\t\t\t// don't attempt to render if unnecessary, avoids flickering\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar $updated = $(self.commentTemplate(self._formatItem(model)));\n\t\t\t\t\t$comment.html($updated.html());\n\t\t\t\t\tself._postRenderItem($comment);\n\t\t\t\t}\n\t\t\t})\n\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was edited\n\t\t *\n\t\t * @param model\n\t\t * @private\n\t\t */\n\t\t_onChangeModel: function (model) {\n\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $form = this.$container.find('.comment[data-id=\"' + model.id + '\"] form');\n\t\t\tvar $row = $form.closest('.comment');\n\t\t\tvar $target = $row.data('commentEl');\n\t\t\tif(_.isUndefined($target)) {\n\t\t\t\t// ignore noise – this is only set after editing a comment and hitting post\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar self = this;\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\t$target.removeClass('hidden');\n\t\t\t\t\t$row.remove();\n\n\t\t\t\t\tvar $message = $target.find('.message');\n\t\t\t\t\t$message\n\t\t\t\t\t\t.html(self._formatMessage(model.get('message'), model.get('mentions')))\n\t\t\t\t\t\t.find('.avatar')\n\t\t\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\t\t\tself._postRenderItem($message);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_postRenderItem: function($el, editionMode) {\n\t\t\t$el.find('.has-tooltip').tooltip();\n\t\t\tvar inlineAvatars = $el.find('.message .avatar');\n\t\t\tif ($($el.context).hasClass('message')) {\n\t\t\t\tinlineAvatars = $el.find('.avatar');\n\t\t\t}\n\t\t\tinlineAvatars.each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 16);\n\t\t\t});\n\t\t\t$el.find('.authorRow .avatar').each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 32);\n\t\t\t});\n\n\t\t\tvar username = $el.find('.avatar').data('username');\n\t\t\tif (username !== OC.getCurrentUser().uid) {\n\t\t\t\t$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(\n\t\t\t\t\tusername, 0, $el.find('.authorRow'));\n\t\t\t}\n\n\t\t\tvar $message = $el.find('.message');\n\t\t\tif($message.length === 0) {\n\t\t\t\t// it is the case when writing a comment and mentioning a person\n\t\t\t\t$message = $el;\n\t\t\t}\n\n\n\t\t\tif (!editionMode) {\n\t\t\t\tvar self = this;\n\t\t\t\t// add the dropdown menu to display the edit and delete option\n\t\t\t\tvar modifyCommentMenu = new OCA.Comments.CommentsModifyMenu();\n\t\t\t\t$el.find('.authorRow').append(modifyCommentMenu.$el);\n\t\t\t\t$el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu));\n\n\t\t\t\tself.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) {\n\t\t\t\t\tif (action === 'edit') {\n\t\t\t\t\t\tself._onClickEditComment(ev);\n\t\t\t\t\t} else if (action === 'delete') {\n\t\t\t\t\t\tself._onClickDeleteComment(ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._postRenderMessage($message, editionMode);\n\t\t},\n\n\t\t_postRenderMessage: function($el, editionMode) {\n\t\t\tif (editionMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$el.find('.avatar-name-wrapper').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar $avatar = $this.find('.avatar');\n\n\t\t\t\tvar user = $avatar.data('user');\n\t\t\t\tif (user !== OC.getCurrentUser().uid) {\n\t\t\t\t\t$this.contactsMenu(user, 0, $this);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Convert a message to be displayed in HTML,\n\t\t * converts newlines to <br> tags.\n\t\t */\n\t\t_formatMessage: function(message, mentions, editMode) {\n\t\t\tmessage = escapeHTML(message).replace(/\\n/g, '<br/>');\n\n\t\t\tfor(var i in mentions) {\n\t\t\t\tif(!mentions.hasOwnProperty(i)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar mention = '@' + mentions[i].mentionId;\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tmention = _.escape('@\"' + mentions[i].mentionId + '\"');\n\t\t\t\t}\n\n\t\t\t\t// escape possible regex characters in the name\n\t\t\t\tmention = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t\t\tvar regex = new RegExp(\"(^|\\\\s)(\" + mention + \")\\\\b\", 'g');\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tregex = new RegExp(\"(^|\\\\s)(\" + mention + \")\", 'g');\n\t\t\t\t}\n\n\t\t\t\tvar displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);\n\n\t\t\t\t// replace every mention either at the start of the input or after a whitespace\n\t\t\t\t// followed by a non-word character.\n\t\t\t\tmessage = message.replace(regex,\n\t\t\t\t\tfunction(match, p1) {\n\t\t\t\t\t\t// to get number of whitespaces (0 vs 1) right\n\t\t\t\t\t\treturn p1+displayName;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif(editMode !== true) {\n\t\t\t\tmessage = OCP.Comments.plainToRich(message);\n\t\t\t}\n\t\t\treturn message;\n\t\t},\n\n\t\t_composeHTMLMention: function(uid, displayName) {\n\t\t\tvar avatar = '' +\n\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t'data-username=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user-display-name=\"' + _.escape(displayName) + '\">' +\n\t\t\t\t'</span>';\n\n\t\t\tvar isCurrentUser = (uid === OC.getCurrentUser().uid);\n\n\t\t\treturn '' +\n\t\t\t\t'<span class=\"atwho-inserted\" contenteditable=\"false\">' +\n\t\t\t\t\t'<span class=\"avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '\">' +\n\t\t\t\t\t\tavatar +\n\t\t\t\t\t\t'<strong>' + _.escape(displayName) + '</strong>' +\n\t\t\t\t\t'</span>' +\n\t\t\t\t'</span>';\n\t\t},\n\n\t\tnextPage: function() {\n\t\t\tif (this._loading || !this.collection.hasMoreResults()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.collection.fetchNext();\n\t\t},\n\n\t\t_onClickEditComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar commentToEdit = this.collection.get(commentId);\n\t\t\tvar $formRow = $(this.editCommentTemplate(_.extend({\n\t\t\t\tisEditMode: true,\n\t\t\t\tsubmitText: t('comments', 'Save')\n\t\t\t}, commentToEdit.attributes)));\n\n\t\t\t$comment.addClass('hidden').removeClass('collapsed');\n\t\t\t// spawn form\n\t\t\t$comment.after($formRow);\n\t\t\t$formRow.data('commentEl', $comment);\n\t\t\t$formRow.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\t// copy avatar element from original to avoid flickering\n\t\t\t$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());\n\t\t\t$formRow.find('.has-tooltip').tooltip();\n\n\t\t\tvar $message = $formRow.find('.message');\n\t\t\t$message\n\t\t\t\t.html(this._formatMessage(commentToEdit.get('message'), commentToEdit.get('mentions'), true))\n\t\t\t\t.find('.avatar')\n\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\tvar editionMode = true;\n\t\t\tthis._postRenderItem($message, editionMode);\n\n\t\t\t// Enable autosize\n\t\t\tautosize($formRow.find('.message'));\n\n\t\t\t// enable autocomplete\n\t\t\tthis._initAutoComplete($formRow.find('.message'));\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onTypeComment: function(ev) {\n\t\t\tvar $field = $(ev.target);\n\t\t\tvar len = $field.text().length;\n\t\t\tvar $submitButton = $field.data('submitButtonEl');\n\t\t\tif (!$submitButton) {\n\t\t\t\t$submitButton = $field.closest('form').find('.submit');\n\t\t\t\t$field.data('submitButtonEl', $submitButton);\n\t\t\t}\n\t\t\t$field.tooltip('hide');\n\t\t\tif (len > this._commentMaxThreshold) {\n\t\t\t\t$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));\n\t\t\t\t$field.tooltip({trigger: 'manual'});\n\t\t\t\t$field.tooltip('show');\n\t\t\t\t$field.addClass('error');\n\t\t\t}\n\n\t\t\tvar limitExceeded = (len > this._commentMaxLength);\n\t\t\t$field.toggleClass('error', limitExceeded);\n\t\t\t$submitButton.prop('disabled', limitExceeded);\n\n\t\t\t// Submits form with Enter, but Shift+Enter is a new line. If the\n\t\t\t// autocomplete popover is being shown Enter does not submit the\n\t\t\t// form either; it will be handled by At.js which will add the\n\t\t\t// currently selected item to the message.\n\t\t\tif (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) {\n\t\t\t\t$submitButton.click();\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_onClickComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t_onClickCloseComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $row = $(ev.target).closest('.comment');\n\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t$row.remove();\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickDeleteComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar $loading = $comment.find('.deleteLoading');\n\t\t\tvar $moreIcon = $comment.find('.more');\n\n\t\t\t$comment.addClass('disabled');\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$moreIcon.addClass('hidden');\n\n\t\t\t$comment.data('commentEl', $comment);\n\n\t\t\tthis.collection.get(commentId).destroy({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$comment.data('commentEl').remove();\n\t\t\t\t\t$comment.remove();\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$moreIcon.removeClass('hidden');\n\t\t\t\t\t$comment.removeClass('disabled');\n\n\t\t\t\t\tOC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId}));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickShowMore: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tthis.nextPage();\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating comment element states after submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {OC.Backbone.Model} model\n\t\t * @param {jQuery} $form\n\t\t * @private\n\t\t */\n\t\t_onSubmitSuccess: function(model, $form) {\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\n\t\t\t$submit.removeClass('hidden');\n\t\t\t$loading.addClass('hidden');\n\t\t},\n\n\t\t_commentBodyHTML2Plain: function($el) {\n\t\t\tvar $comment = $el.clone();\n\n\t\t\t$comment.find('.avatar-name-wrapper').each(function () {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\t$inserted = $this.parent(),\n\t\t\t\t\tuserId = $this.find('.avatar').data('username');\n\t\t\t\tif (userId.indexOf(' ') !== -1) {\n\t\t\t\t\t$inserted.html('@\"' + userId + '\"');\n\t\t\t\t} else {\n\t\t\t\t\t$inserted.html('@' + userId);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$comment.html(OCP.Comments.richToPlain($comment.html()));\n\n\t\t\tvar oldHtml;\n\t\t\tvar html = $comment.html();\n\t\t\tdo {\n\t\t\t\t// replace works one by one\n\t\t\t\toldHtml = html;\n\t\t\t\thtml = oldHtml.replace(\"<br>\", \"\\n\");\t// preserve line breaks\n\t\t\t} while(oldHtml !== html);\n\t\t\t$comment.html(html);\n\n\t\t\treturn $comment.text();\n\t\t},\n\n\t\t_onSubmitComment: function(e) {\n\t\t\tvar self = this;\n\t\t\tvar $form = $(e.target);\n\t\t\tvar commentId = $form.closest('.comment').data('id');\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\t\t\tvar $commentField = $form.find('.message');\n\t\t\tvar message = $commentField.text().trim();\n\t\t\te.preventDefault();\n\n\t\t\tif (!message.length || message.length > this._commentMaxLength) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$commentField.prop('contenteditable', false);\n\t\t\t$submit.addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tmessage = this._commentBodyHTML2Plain($commentField);\n\t\t\tif (commentId) {\n\t\t\t\t// edit mode\n\t\t\t\tvar comment = this.collection.get(commentId);\n\t\t\t\tcomment.save({\n\t\t\t\t\tmessage: message\n\t\t\t\t}, {\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\t\t\t\t// model change event doesn't trigger, manually remove the row.\n\t\t\t\t\t\t\tvar $row = $form.closest('.comment');\n\t\t\t\t\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, commentId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.collection.create({\n\t\t\t\t\tactorId: currentUser.uid,\n\t\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\t\tactorType: 'users',\n\t\t\t\t\tverb: 'comment',\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tcreationDateTime: (new Date()).toUTCString()\n\t\t\t\t}, {\n\t\t\t\t\tat: 0,\n\t\t\t\t\t// wait for real creation before adding\n\t\t\t\t\twait: true,\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating the UI after an error on submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {jQuery} $form\n\t\t * @param {string|undefined} commentId\n\t\t * @private\n\t\t */\n\t\t_onSubmitError: function($form, commentId) {\n\t\t\t$form.find('.submit').removeClass('hidden');\n\t\t\t$form.find('.submitLoading').addClass('hidden');\n\t\t\t$form.find('.message').prop('contenteditable', true);\n\n\t\t\tif(!_.isUndefined(commentId)) {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}), {type: 'error'});\n\t\t\t} else {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while posting comment'), {type: 'error'});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * ensures the contenteditable div is really empty, when user removed\n\t\t * all input, so that the placeholder will be shown again\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_onTextChange: function() {\n\t\t\tvar $message = $('#commentsTabView').find('.newCommentForm div.message');\n\t\t\tif(!$message.text().trim().length) {\n\t\t\t\t$message.empty();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Limit pasting to plain text\n\t\t *\n\t\t * @param e\n\t\t * @private\n\t\t */\n\t\t_onPaste: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar text = e.originalEvent.clipboardData.getData(\"text/plain\");\n\t\t\tdocument.execCommand('insertText', false, text);\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given message is long and needs\n\t\t * collapsing\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentsTabView = CommentsTabView;\n})(OC, OCA);\n","/*\n * Copyright (c) 2018\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n(function() {\n\n\t/**\n\t * Construct a new CommentsModifyMenuinstance\n\t * @constructs CommentsModifyMenu\n\t * @memberof OC.Comments\n\t * @private\n\t */\n\tvar CommentsModifyMenu = OC.Backbone.View.extend({\n\t\ttagName: 'div',\n\t\tclassName: 'commentsModifyMenu popovermenu bubble menu',\n\t\t_scopes: [\n\t\t\t{\n\t\t\t\tname: 'edit',\n\t\t\t\tdisplayName: t('comments', 'Edit comment'),\n\t\t\t\ticonClass: 'icon-rename'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'delete',\n\t\t\t\tdisplayName: t('comments', 'Delete comment'),\n\t\t\t\ticonClass: 'icon-delete'\n\t\t\t}\n\t\t],\n\t\tinitialize: function() {\n\n\t\t},\n\t\tevents: {\n\t\t\t'click a.action': '_onClickAction'\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever an action has been clicked within the menu\n\t\t *\n\t\t * @param {Object} event event object\n\t\t */\n\t\t_onClickAction: function(event) {\n\t\t\tvar $target = $(event.currentTarget);\n\t\t\tif (!$target.hasClass('menuitem')) {\n\t\t\t\t$target = $target.closest('.menuitem');\n\t\t\t}\n\n\t\t\tOC.hideMenus();\n\n\t\t\tthis.trigger('select:menu-item-clicked', event, $target.data('action'));\n\t\t},\n\n\t\t/**\n\t\t * Renders the menu with the currently set items\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(OCA.Comments.Templates['commentsmodifymenu']({\n\t\t\t\titems: this._scopes\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * Displays the menu\n\t\t */\n\t\tshow: function(context) {\n\t\t\tthis._context = context;\n\n\t\t\tfor(var i in this._scopes) {\n\t\t\t\tthis._scopes[i].active = false;\n\t\t\t}\n\n\n\t\t\tvar $el = $(context.target);\n\t\t\tvar offsetIcon = $el.offset();\n\t\t\tvar offsetContainer = $el.closest('.authorRow').offset();\n\n\t\t\t// adding some extra top offset to push the menu below the button.\n\t\t\tvar position = {\n\t\t\t\ttop: offsetIcon.top - offsetContainer.top + 48,\n\t\t\t\tleft: '',\n\t\t\t\tright: ''\n\t\t\t};\n\n\t\t\tposition.left = offsetIcon.left - offsetContainer.left;\n\n\t\t\tif (position.left > 200) {\n\t\t\t\t// we need to position the menu to the right.\n\t\t\t\tposition.left = '';\n\t\t\t\tposition.right = this.$el.closest('.comment').find('.date').width();\n\t\t\t\tthis.$el.removeClass('menu-left').addClass('menu-right');\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('menu-right').addClass('menu-left');\n\t\t\t}\n\t\t\tthis.$el.css(position);\n\t\t\tthis.render();\n\t\t\tthis.$el.removeClass('hidden');\n\n\t\t\tOC.showMenu(null, this.$el);\n\t\t}\n\t});\n\n\tOCA.Comments = OCA.Comments || {};\n\tOCA.Comments.CommentsModifyMenu = CommentsModifyMenu;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_COMMENTS_UNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}comments-unread'\n\t});\n\n\tOCA.Comments = _.extend({}, OCA.Comments);\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Comments.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\t_formatCommentCount: function(count) {\n\t\t\treturn OCA.Comments.Templates['filesplugin']({\n\t\t\t\tcount: count,\n\t\t\t\tcountMessage: n('comments', '%n unread comment', '%n unread comments', count),\n\t\t\t\ticonUrl: OC.imagePath('core', 'actions/comment')\n\t\t\t});\n\t\t},\n\n\t\tattach: function(fileList) {\n\t\t\tvar self = this;\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar commentsUnread = props[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];\n\t\t\t\tif (!_.isUndefined(commentsUnread) && commentsUnread !== '') {\n\t\t\t\t\tdata.commentsUnread = parseInt(commentsUnread, 10);\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tfileList.$el.addClass('has-comments');\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\t\t\t\tvar $tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tif (fileData.commentsUnread) {\n\t\t\t\t\t$tr.attr('data-comments-unread', fileData.commentsUnread);\n\t\t\t\t}\n\t\t\t\treturn $tr;\n\t\t\t};\n\n\t\t\t// register \"comment\" action for reading comments\n\t\t\tfileList.fileActions.registerAction({\n\t\t\t\tname: 'Comment',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar unread = parseInt(context.$file.data('comments-unread'), 10)\n\t\t\t\t\t\tif (unread >= 0) {\n\t\t\t\t\t\t\treturn n('comments', '1 new comment', '{unread} new comments', unread, { unread: unread })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('comments', 'Comment')\n\t\t\t\t},\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -140,\n\t\t\t\ticonClass: 'icon-comment',\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar $file = context.$file;\n\t\t\t\t\tvar unreadComments = $file.data('comments-unread');\n\t\t\t\t\tif (unreadComments) {\n\t\t\t\t\t\tvar $actionLink = $(self._formatCommentCount(unreadComments));\n\t\t\t\t\t\tcontext.$file.find('a.name>span.fileactions').append($actionLink);\n\t\t\t\t\t\treturn $actionLink;\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\tcontext.$file.find('.action-comment').tooltip('hide');\n\t\t\t\t\t// open sidebar in comments section\n\t\t\t\t\tcontext.fileList.showDetailsView(fileName, 'commentsTabView');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add attribute to \"elementToFile\"\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tvar commentsUnread = $el.data('comments-unread');\n\t\t\t\tif (commentsUnread) {\n\t\t\t\t\tfileInfo.commentsUnread = commentsUnread;\n\t\t\t\t}\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);\n","/*\n * @author Joas Schilling <coding@schilljs.com>\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n */\n\n(function() {\n\tOCA.Comments.ActivityTabViewPlugin = {\n\n\t\t/**\n\t\t * Prepare activity for display\n\t\t *\n\t\t * @param {OCA.Activity.ActivityModel} model for this activity\n\t\t * @param {jQuery} $el jQuery handle for this activity\n\t\t * @param {string} view The view that displayes this activity\n\t\t */\n\t\tprepareModelForDisplay: function (model, $el, view) {\n\t\t\tif (model.get('app') !== 'comments' || model.get('type') !== 'comments') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (view === 'ActivityTabView') {\n\t\t\t\t$el.addClass('comment');\n\t\t\t\tif (model.get('message') && this._isLong(model.get('message'))) {\n\t\t\t\t\t$el.addClass('collapsed');\n\t\t\t\t\tvar $overlay = $('<div>').addClass('message-overlay');\n\t\t\t\t\t$el.find('.activitymessage').after($overlay);\n\t\t\t\t\t$el.on('click', this._onClickCollapsedComment);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._onClickComment()\n\t\t */\n\t\t_onClickCollapsedComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._isLong()\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t};\n\n\n})();\n\nOC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function(OC, OCA, $) {\n\t\"use strict\";\n\n\t/**\n\t * Construct a new FileActions instance\n\t * @constructs Files\n\t */\n\tvar Comment = function() {\n\t\tthis.initialize();\n\t};\n\n\tComment.prototype = {\n\n\t\tfileList: null,\n\n\t\t/**\n\t\t * Initialize the file search\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.fileAppLoaded = function() {\n\t\t\t\treturn !!OCA.Files && !!OCA.Files.App;\n\t\t\t};\n\t\t\tfunction inFileList($row, result) {\n\t\t\t\treturn false;\n\n\t\t\t\tif (! self.fileAppLoaded()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar dir = self.fileList.getCurrentDirectory().replace(/\\/+$/,'');\n\t\t\t\tvar resultDir = OC.dirname(result.path);\n\t\t\t\treturn dir === resultDir && self.fileList.inList(result.name);\n\t\t\t}\n\t\t\tfunction hideNoFilterResults() {\n\t\t\t\tvar $nofilterresults = $('.nofilterresults');\n\t\t\t\tif ( ! $nofilterresults.hasClass('hidden') ) {\n\t\t\t\t\t$nofilterresults.addClass('hidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {jQuery} $row\n\t\t\t * @param {Object} result\n\t\t\t * @param {int} result.id\n\t\t\t * @param {string} result.comment\n\t\t\t * @param {string} result.authorId\n\t\t\t * @param {string} result.authorName\n\t\t\t * @param {string} result.link\n\t\t\t * @param {string} result.fileName\n\t\t\t * @param {string} result.path\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tthis.renderCommentResult = function($row, result) {\n\t\t\t\tif (inFileList($row, result)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\thideNoFilterResults();\n\t\t\t\t/*render preview icon, show path beneath filename,\n\t\t\t\t show size and last modified date on the right */\n\t\t\t\tthis.updateLegacyMimetype(result);\n\n\t\t\t\tvar $pathDiv = $('<div>').addClass('path').text(result.path);\n\n\t\t\t\tvar $avatar = $('<div>');\n\t\t\t\t$avatar.addClass('avatar')\n\t\t\t\t\t.css('display', 'inline-block')\n\t\t\t\t\t.css('vertical-align', 'middle')\n\t\t\t\t\t.css('margin', '0 5px 2px 3px');\n\n\t\t\t\tif (result.authorName) {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21, undefined, false, undefined, result.authorName);\n\t\t\t\t} else {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21);\n\t\t\t\t}\n\n\t\t\t\t$row.find('td.info div.name').after($pathDiv).text(result.comment).prepend($('<span>').addClass('path').css('margin-right', '5px').text(result.authorName)).prepend($avatar);\n\t\t\t\t$row.find('td.result a').attr('href', result.link);\n\n\t\t\t\t$row.find('td.icon')\n\t\t\t\t\t.css('background-image', 'url(' + OC.imagePath('core', 'actions/comment') + ')')\n\t\t\t\t\t.css('opacity', '.4');\n\t\t\t\tvar dir = OC.dirname(result.path);\n\t\t\t\t// \"result.path\" does not include a leading \"/\", so \"OC.dirname\"\n\t\t\t\t// returns the path itself for files or folders in the root.\n\t\t\t\tif (dir === result.path) {\n\t\t\t\t\tdir = '/';\n\t\t\t\t}\n\t\t\t\t$row.find('td.info a').attr('href',\n\t\t\t\t\tOC.generateUrl('/apps/files/?dir={dir}&scrollto={scrollto}', {dir: dir, scrollto: result.fileName})\n\t\t\t\t);\n\n\t\t\t\treturn $row;\n\t\t\t};\n\n\t\t\tthis.handleCommentClick = function($row, result, event) {\n\t\t\t\tif (self.fileAppLoaded() && self.fileList.id === 'files') {\n\t\t\t\t\tself.fileList.changeDirectory(OC.dirname(result.path));\n\t\t\t\t\tself.fileList.scrollTo(result.name);\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.updateLegacyMimetype = function (result) {\n\t\t\t\t// backward compatibility:\n\t\t\t\tif (!result.mime && result.mime_type) {\n\t\t\t\t\tresult.mime = result.mime_type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.setFileList = function (fileList) {\n\t\t\t\tthis.fileList = fileList;\n\t\t\t};\n\n\t\t\tOC.Plugins.register('OCA.Search.Core', this);\n\t\t},\n\t\tattach: function(search) {\n\t\t\tsearch.setRenderer('comment', this.renderCommentResult.bind(this));\n\t\t\tsearch.setHandler('comment', this.handleCommentClick.bind(this));\n\t\t}\n\t};\n\n\tOCA.Search.comment = new Comment();\n})(OC, OCA, $);\n","/*! jquery.caret 2015-02-01 */\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(c){return a.returnExportsGlobal=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"jquery\")):b(jQuery)}(this,function(a){\"use strict\";var b,c,d,e,f,g,h,i,j,k,l;k=\"caret\",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(){return this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint(\"EndToEnd\",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart(\"character\",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer===!this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode(\"|\")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\\r\\n/g,\"\\n\"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints(\"StartToEnd\",a)>-1?c:-g.moveStart(\"character\",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move(\"character\",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move(\"character\",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|\"|&/g,\"?\").replace(/\\r\\n|\\r|\\n/g,\"<br/>\"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\\s/g,\"&nbsp;\")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g=\"<span style='position: relative; display: inline;'>\"+f(i)+\"</span>\",g+=\"<span id='caret' style='position: relative; display: inline;'>|</span>\",g+=\"<span style='position: relative; display: inline;'>\"+f(e)+\"</span>\",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderLeftStyle\",\"borderTopWidth\",\"boxSizing\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"height\",\"letterSpacing\",\"lineHeight\",\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"outlineWidth\",\"overflow\",\"overflowX\",\"overflowY\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"textAlign\",\"textOverflow\",\"textTransform\",\"whiteSpace\",\"wordBreak\",\"wordWrap\"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:\"absolute\",left:-9999,top:0,zIndex:-2e4},\"TEXTAREA\"===this.$inputor.prop(\"tagName\")&&this.css_attr.push(\"width\"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a(\"<div></div>\"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find(\"#caret\"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||\"true\"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error(\"Method \"+d+\" does not exist on jQuery.caret\")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});","!function(t,e){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(t){return e(t)}):\"object\"==typeof exports?module.exports=e(require(\"jquery\")):e(jQuery)}(this,function(t){var e,i;i={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),i&&(t=\"(?:^|\\\\s)\"+t),r=decodeURI(\"%C3%80\"),o=decodeURI(\"%C3%BF\"),h=n?\" \":\"\",a=new RegExp(t+\"([A-Za-z\"+r+\"-\"+o+\"0-9_\"+h+\"'.+-]*)$|\"+t+\"([^\\\\x00-\\\\xff]*)$\",\"gi\"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return\"string\"!=typeof t&&(r=t(e)),r.replace(/\\$\\{([^\\}]*)\\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,\"\"}},highlighter:function(t,e){var i;return e?(i=new RegExp(\">\\\\s*([^<]*?)(\"+e.replace(\"+\",\"\\\\+\")+\")([^<]*)\\\\s*<\",\"ig\"),t.replace(i,function(t,e,i,n){return\"> \"+e+\"<strong>\"+i+\"</strong>\"+n+\" <\"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t(\"<div class='atwho-container'></div>\"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is(\"[contentEditable]\")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on(\"compositionstart\",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on(\"compositionend\",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on(\"keyup.atwhoInner\",function(t){return function(e){return t.onKeyup(e)}}(this)).on(\"keydown.atwhoInner\",function(t){return function(e){return t.onKeydown(e)}}(this)).on(\"blur.atwhoInner\",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt(\"displayTimeout\"))):void 0}}(this)).on(\"click.atwhoInner\",function(t){return function(e){return t.dispatch(e)}}(this)).on(\"scroll.atwhoInner\",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(\".atwhoInner\"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt(\"spaceSelectsMatch\")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt(\"tabSelectsMatch\")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t(\"#atwho-ground-\"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t(\"<div id='atwho-ground-\"+this.id+\"'></div>\")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+\"000000000\").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho[\"default\"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger(\"beforeDestroy\"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+\" Or maybe At.js doesn't have function \"+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt(\"alias\"),n=i?t+\"-\"+i+\".atwho\":t+\".atwho\",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt(\"callbacks\")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt(\"insertTpl\"),i=t.extend({},e.data(\"item-data\"),{\"atwho-at\":this.at}),this.callbacks(\"tplEval\").call(this,n,i,\"onInsert\")},i.prototype.renderView=function(t){var e;return e=this.getOpt(\"searchKey\"),t=this.callbacks(\"sorter\").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt(\"limit\")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||\"click\"!==t.type||this.getOpt(\"lookUpOnClick\"))&&(!this.getOpt(\"suspendOnComposing\")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt(\"delay\"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret(\"pos\",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks(\"matcher\").call(this,this.at,s,this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),n=\"string\"==typeof r,n&&r.length<this.getOpt(\"minLen\",0)?void 0:(n&&r.length<=this.getOpt(\"maxLen\",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger(\"matched\",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret(\"offset\",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",t+=o,s=\"\"+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret(\"pos\",r.length+t.length,{iframe:this.app.iframe}),i.is(\":focus\")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n&&i?(i=t(i)[0],\"after\"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return\"click\"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(\".atwho-query\")).contents().unwrap(),r.is(\":empty\")&&r.remove(),(r=t(\".atwho-query\",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(\".atwho-inserted\")&&(a=t(d.startContainer).contents().get(c),this._setRange(\"after\",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(\".atwho-inserted\")&&0===d.startOffset&&this._setRange(\"after\",n.contents().last()))}if(t(d.startContainer).closest(\".atwho-inserted\").addClass(\"atwho-query\").siblings().removeClass(\"atwho-query\"),(r=t(\".atwho-query\",this.app.document)).length>0&&r.is(\":empty\")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass(\"atwho-inserted\"),r.length>0)switch(e.which){case i.LEFT:return this._setRange(\"before\",r.get(0),d),void r.removeClass(\"atwho-query\");case i.RIGHT:return this._setRange(\"after\",r.get(0).nextSibling,d),void r.removeClass(\"atwho-query\")}if(r.length>0&&(f=r.attr(\"data-atwho-at-query\"))&&(r.empty().html(f).attr(\"data-atwho-at-query\",null),this._setRange(\"after\",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks(\"matcher\").call(this,this.at,o.toString(),this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),h=\"string\"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t(\"<span/>\",this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass(\"atwho-query\"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),l&&(/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange(\"after\",l,d))),!(h&&u.length<this.getOpt(\"minLen\",0)))return h&&u.length<=this.getOpt(\"maxLen\",20)?(p={text:u,el:r},this.trigger(\"matched\",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass(\"atwho-inserted\")?r.removeClass(\"atwho-query\"):!1!==this.callbacks(\"afterMatchFailed\").call(this,this.at,r)&&this._setRange(\"after\",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),n&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},n.prototype.insert=function(t,e){var i,n,r,o,s;return this.$inputor.is(\":focus\")||this.$inputor.focus(),n=this.getOpt(\"functionOverrides\"),n.insert?n.insert.call(this,t,e):(o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",i=e.data(\"item-data\"),this.query.el.removeClass(\"atwho-query\").addClass(\"atwho-inserted\").html(t).attr(\"data-atwho-at-query\",\"\"+i[\"atwho-at\"]+this.query.text).attr(\"contenteditable\",\"false\"),(r=this._getRange())&&(this.query.el.length&&r.setEndAfter(this.query.el[0]),r.collapse(!1),r.insertNode(s=this.app.document.createTextNode(\"\"+o)),this._setRange(\"after\",s,r)),this.$inputor.is(\":focus\")||this.$inputor.focus(),this.$inputor.change())},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt(\"searchKey\"),n=this.context.callbacks(\"filter\").call(this.context,t,n,r)||[],i=this.context.callbacks(\"remoteFilter\"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks(\"beforeSave\").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return\"string\"==typeof e?t.ajax(e,{dataType:\"json\"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt(\"alias\")||this.context.at.charCodeAt(0),t=this.context.getOpt(\"headerTpl\"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:\"at-view-\"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find(\"ul\"),i=0,n=0,e.on(\"mousemove.atwho-view\",\"li\",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass(\"cur\")))return e.find(\".cur\").removeClass(\"cur\"),o.addClass(\"cur\")}}(this)).on(\"click.atwho-view\",\"li\",function(i){return function(n){return e.find(\".cur\").removeClass(\"cur\"),t(n.currentTarget).addClass(\"cur\"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(\".cur\").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(\".cur\")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context,i,e,t),e),this.context.trigger(\"inserted\",[e,t]),this.hide(t)),this.context.getOpt(\"hideWithoutSuffix\")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks(\"beforeReposition\"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger(\"reposition\",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),e=t.next(),e.length||(e=this.$el.find(\"li:first\")),e.addClass(\"cur\"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),i=t.prev(),i.length||(i=this.$el.find(\"li:last\")),i.addClass(\"cur\"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt(\"scrollDuration\"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger(\"shown\")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger(\"hidden\",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find(\"ul\").empty(),n=this.$el.find(\"ul\"),h=this.context.getOpt(\"displayTpl\"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{\"atwho-at\":this.context.at}),a=this.context.callbacks(\"tplEval\").call(this.context,h,o,\"onDisplay\"),i=t(this.context.callbacks(\"highlighter\").call(this.context,a,this.context.query.text)),i.data(\"item-data\",o),n.append(i);return this.show(),this.context.getOpt(\"highlightFirst\")?n.find(\"li:first\").addClass(\"cur\"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data(\"atwho\",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data(\"atwho\"))||o.data(\"atwho\",s=new n(this)),\"object\"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error(\"Method \"+e+\" does not exist on jQuery.atwho\"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho[\"default\"]={at:void 0,alias:void 0,data:null,displayTpl:\"<li>${name}</li>\",insertTpl:\"${atwho-at}${name}\",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:\"name\",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});","\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./autocomplete.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./autocomplete.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./autocomplete.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\n * based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,\\n * only changed colors and font-weight\\n */\\n.atwho-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n display: none;\\n margin-top: 18px;\\n background: var(--color-main-background);\\n color: var(--color-main-text);\\n border: 1px solid var(--color-border);\\n border-radius: var(--border-radius);\\n box-shadow: 0 0 5px var(--color-box-shadow);\\n min-width: 120px;\\n z-index: 11110 !important; }\\n\\n.atwho-view .atwho-header {\\n padding: 5px;\\n margin: 5px;\\n cursor: pointer;\\n border-bottom: solid 1px var(--color-border);\\n color: var(--color-main-text);\\n font-size: 11px;\\n font-weight: bold; }\\n\\n.atwho-view .atwho-header .small {\\n color: var(--color-main-text);\\n float: right;\\n padding-top: 2px;\\n margin-right: -5px;\\n font-size: 12px;\\n font-weight: normal; }\\n\\n.atwho-view .atwho-header:hover {\\n cursor: default; }\\n\\n.atwho-view .cur {\\n background: var(--color-primary);\\n color: var(--color-primary-text); }\\n\\n.atwho-view .cur small {\\n color: var(--color-primary-text); }\\n\\n.atwho-view strong {\\n color: var(--color-main-text);\\n font-weight: normal; }\\n\\n.atwho-view .cur strong {\\n color: var(--color-primary-text);\\n font-weight: normal; }\\n\\n.atwho-view ul {\\n /* width: 100px; */\\n list-style: none;\\n padding: 0;\\n margin: auto;\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.atwho-view ul li {\\n display: block;\\n padding: 5px 10px;\\n border-bottom: 1px solid var(--color-border);\\n cursor: pointer; }\\n\\n.atwho-view small {\\n font-size: smaller;\\n color: var(--color-main-text);\\n font-weight: normal; }\\n\", \"\"]);\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./comments.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./comments.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./comments.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#commentsTabView .emptycontent {\\n margin-top: 0; }\\n\\n#commentsTabView .newCommentForm {\\n margin-left: 36px;\\n position: relative; }\\n\\n#commentsTabView .newCommentForm .message {\\n width: 100%;\\n padding: 10px;\\n min-height: 44px;\\n margin: 0;\\n /* Prevent the text from overlapping with the submit button. */\\n padding-right: 30px; }\\n\\n#commentsTabView .newCommentForm .submit,\\n#commentsTabView .newCommentForm .submitLoading {\\n width: 44px;\\n height: 44px;\\n margin: 0;\\n padding: 13px;\\n background-color: transparent;\\n border: none;\\n opacity: .3;\\n position: absolute;\\n bottom: 0;\\n right: 0; }\\n\\n#commentsTabView .deleteLoading {\\n padding: 14px;\\n vertical-align: middle; }\\n\\n#commentsTabView .newCommentForm .submit:not(:disabled):hover,\\n#commentsTabView .newCommentForm .submit:not(:disabled):focus {\\n opacity: 1; }\\n\\n#commentsTabView .newCommentForm div.message {\\n resize: none; }\\n\\n#commentsTabView .newCommentForm div.message:empty:before {\\n content: attr(data-placeholder);\\n color: grey; }\\n\\n#commentsTabView .comment {\\n position: relative;\\n /** padding bottom is little more so that the top and bottom gap look uniform **/\\n padding: 10px 0 15px; }\\n\\n#commentsTabView .comments .comment {\\n border-top: 1px solid var(--color-border); }\\n\\n#commentsTabView .comment .avatar,\\n.atwho-view-ul * .avatar {\\n width: 32px;\\n height: 32px;\\n line-height: 32px;\\n margin-right: 5px; }\\n\\n#commentsTabView .comment .message .avatar,\\n.atwho-view-ul * .avatar {\\n display: inline-block; }\\n\\n#activityTabView li.comment.collapsed .activitymessage,\\n#commentsTabView .comment.collapsed .message {\\n white-space: pre-wrap; }\\n\\n#activityTabView li.comment.collapsed .activitymessage,\\n#commentsTabView .comment.collapsed .message {\\n max-height: 70px;\\n overflow: hidden; }\\n\\n#activityTabView li.comment .message-overlay,\\n#commentsTabView .comment .message-overlay {\\n display: none; }\\n\\n#activityTabView li.comment.collapsed .message-overlay,\\n#commentsTabView .comment.collapsed .message-overlay {\\n display: block;\\n position: absolute;\\n z-index: 2;\\n height: 50px;\\n pointer-events: none;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background-repeat: no-repeat; }\\n\\n#commentsTabView .hidden {\\n display: none !important; }\\n\\n/** set min-height as 44px to ensure that it fits the button sizes. **/\\n#commentsTabView .comment .authorRow {\\n min-height: 44px; }\\n\\n#commentsTabView .comment .authorRow .tooltip {\\n /** because of the padding on the element, the tooltip appear too far up,\\n\\t adding this brings them closer to the element**/\\n margin-top: 5px; }\\n\\n.atwho-view-ul * .avatar-name-wrapper,\\n#commentsTabView .comment .authorRow {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: 100%; }\\n\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,\\n#commentsTabView .comment .authorRow .avatar:not(.currentUser),\\n#commentsTabView .comment .authorRow .author:not(.currentUser) {\\n cursor: pointer; }\\n\\n.atwho-view-ul .avatar-name-wrapper,\\n.atwho-view-ul .avatar-name-wrapper .avatar,\\n.atwho-view-ul .avatar-name-wrapper .avatar img {\\n cursor: pointer; }\\n\\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,\\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper {\\n /* Make the wrapper the positioning context of its child contacts\\n\\t\\t * menu. */\\n position: relative;\\n display: inline;\\n vertical-align: top;\\n background-color: var(--color-background-dark);\\n border-radius: 50vh;\\n padding: 1px 7px 1px 1px;\\n /* Ensure that the avatar and the user name will be kept together. */\\n white-space: nowrap; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar {\\n height: 16px;\\n width: 16px;\\n vertical-align: middle;\\n padding: 1px;\\n margin-top: -3px;\\n margin-left: 0;\\n margin-right: 2px; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img {\\n vertical-align: top; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong {\\n /* Ensure that the user name is shown in bold, as different browsers\\n\\t\\t\\t * use different font weights for strong elements. */\\n font-weight: bold; }\\n\\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,\\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser {\\n background-color: var(--color-primary);\\n color: var(--color-primary-text); }\\n\\n.atwho-view-ul * .avatar-name-wrapper {\\n white-space: nowrap; }\\n\\n#commentsTabView .comment .author,\\n#commentsTabView .comment .date {\\n opacity: .5; }\\n\\n#commentsTabView .comment .author {\\n max-width: 210px;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n#commentsTabView .comment .date {\\n margin-left: auto;\\n /** this is to fix the tooltip being too close due to the margin-top applied\\n\\t to bring the tooltip closer for the action icons **/\\n padding: 10px 0px; }\\n\\n#commentsTabView .comments > li:not(.newCommentRow) .message {\\n padding-left: 40px;\\n word-wrap: break-word;\\n overflow-wrap: break-word; }\\n\\n#commentsTabView .comment .action {\\n opacity: 0.3;\\n padding: 14px;\\n display: block; }\\n\\n#commentsTabView .comment .action:hover,\\n#commentsTabView .comment .action:focus {\\n opacity: 1; }\\n\\n#commentsTabView .newCommentRow .action-container {\\n margin-left: auto; }\\n\\n#commentsTabView .comment.disabled .message {\\n opacity: 0.3; }\\n\\n#commentsTabView .comment.disabled .action {\\n display: none; }\\n\\n#commentsTabView .message.error {\\n color: #e9322d;\\n border-color: #e9322d;\\n box-shadow: 0 0 6px #f8b9b7; }\\n\\n.app-files .action-comment {\\n padding: 16px 14px; }\\n\\n#commentsTabView .comment .message .contactsmenu-popover {\\n left: -6px;\\n top: 24px; }\\n\", \"\"]);\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./apps/comments/src/comments.js","webpack:///./apps/comments/src/app.js","webpack:///./apps/comments/src/templates.js","webpack:///./apps/comments/src/commentmodel.js","webpack:///./apps/comments/src/commentcollection.js","webpack:///./apps/comments/src/commentsummarymodel.js","webpack:///./apps/comments/src/commentstabview.js","webpack:///./apps/comments/src/commentsmodifymenu.js","webpack:///./apps/comments/src/filesplugin.js","webpack:///./apps/comments/src/activitytabviewplugin.js","webpack:///./apps/comments/src/search.js","webpack:///./apps/comments/src/vendor/Caret.js/dist/jquery.caret.min.js","webpack:///./apps/comments/src/vendor/At.js/dist/js/jquery.atwho.min.js","webpack:///./apps/comments/src/style/autocomplete.scss?7de9","webpack:///./apps/comments/src/style/autocomplete.scss","webpack:///./apps/comments/src/style/comments.scss?b4c3","webpack:///./apps/comments/src/style/comments.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","useSourceMap","list","toString","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","_i","push","memo","stylesInDom","isOldIE","Boolean","window","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","listToStyles","options","styles","newStyles","base","part","css","media","parts","addStylesToDom","domStyle","j","refs","addStyle","insertStyleElement","style","createElement","attributes","nonce","nc","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","index","replacement","filter","applyToSingletonTag","remove","obj","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","singleton","singletonCounter","update","styleIndex","firstChild","parentNode","removeStyleElement","newObj","newList","mayRemove","_domStyle","__webpack_exports__","OCA","Comments","template","templates","Handlebars","Templates","1","container","depth0","helpers","partials","3","5","7","helper","escapeExpression","actorId","helperMissing","nullContext","hash","9","11","compiler","main","stack1","alias1","alias2","alias3","alias4","isUnread","fn","program","inverse","noop","isLong","_typeof","isUserAuthor","actorDisplayName","timestamp","altDate","date","formattedMessage","useData","iconClass","displayName","2","4","each","items","cancelText","tag","isEditMode","newMessagePlaceholder","message","submitText","countMessage","iconUrl","emptyResultLabel","moreLabel","OC","_","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_MESSAGE","PROPERTY_ACTORTYPE","PROPERTY_ACTORID","PROPERTY_ISUNREAD","PROPERTY_OBJECTID","PROPERTY_OBJECTTYPE","PROPERTY_ACTORDISPLAYNAME","PROPERTY_CREATIONDATETIME","PROPERTY_MENTIONS","CommentModel","Backbone","Model","sync","davSync","defaults","actorType","objectType","davProperties","creationDateTime","objectId","mentions","parse","_parseMentions","isUndefined","result","mention","localName","child","nextSibling","startsWith","textContent","CommentCollection","Collection","model","_objectType","_objectId","_endReached","_limit","initialize","models","url","linkToRemote","setObjectId","hasMoreResults","reset","_summaryModel","apply","arguments","fetchNext","self","body","success","resp","initial","set","trigger","getSummaryModel","CommentSummaryModel","updateReadMarker","save","readMarker","Date","toUTCString","PROPERTY_READMARKER","attrs","CommentsTabView","DetailTabView","className","_autoCompleteData","undefined","_commentsModifyMenu","events","submit .newCommentForm","click .showMore","click .cancel","click .comment","keyup div.message","change div.message","input div.message","paste div.message","_commentMaxLength","collection","on","_onRequest","_onEndRequest","_onAddModel","_onChangeModel","_commentMaxThreshold","bindAll","params","currentUser","getCurrentUser","uid","editCommentTemplate","commentTemplate","editTooltip","_isLong","getLabel","getIcon","setFileInfo","fileInfo","render","_initAutoComplete","$","find","silent","nextPage","$el","html","before","tooltip","$container","avatar","delegateEvents","_onTypeComment","autosize","focus","$target","limit","appConfig","comments","maxAutoCompleteResults","atwho","at","callbacks","remoteFilter","_onAutoComplete","highlighter","li","$li","sorter","q","displayTpl","escapeHTML","label","insertTpl","searchKey","je","_postRenderItem","parent","query","callback","_autoCompleteRequestTimer","clearTimeout","delay","_autoCompleteRequestCall","abort","ajax","linkToOCS","search","itemType","itemId","beforeSend","request","setRequestHeader","ocs","_formatItem","commentModel","getTime","Util","relativeModifiedDate","formatDate","_formatMessage","_toggleLoading","state","_loading","toggleClass","type","addClass","fileInfoModel","findWhere","$comment","eq","append","text","prop","oldMentions","fetch","isEqual","$updated","trim","previous","$row","closest","removeClass","$message","editionMode","inlineAvatars","context","hasClass","$this","attr","username","contactsMenu","modifyCommentMenu","CommentsModifyMenu","show","listenTo","ev","action","_onClickEditComment","_onClickDeleteComment","_postRenderMessage","user","editMode","replace","mentionId","indexOf","escape","regex","RegExp","_composeHTMLMention","mentionDisplayName","match","p1","OCP","plainToRich","preventDefault","commentId","commentToEdit","$formRow","after","replaceWith","clone","$field","len","$submitButton","count","max","limitExceeded","keyCode","shiftKey","click","_onClickComment","is","_onClickCloseComment","$loading","$moreIcon","destroy","error","Notification","showTemporary","_onClickShowMore","_onSubmitSuccess","$form","$submit","_commentBodyHTML2Plain","oldHtml","$inserted","userId","richToPlain","_onSubmitComment","$commentField","_onSubmitError","verb","wait","_onTextChange","empty","_onPaste","originalEvent","clipboardData","getData","execCommand","View","tagName","_scopes","click a.action","_onClickAction","event","currentTarget","hideMenus","_context","active","offsetIcon","offset","offsetContainer","position","top","left","right","width","showMenu","PROPERTY_COMMENTS_UNREAD","FilesPlugin","ignoreLists","_formatCommentCount","imagePath","attach","fileList","registerTabView","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","commentsUnread","propStat","properties","parseInt","oldCreateRow","_createRow","fileData","$tr","fileActions","registerAction","$file","unread","mime","order","permissions","PERMISSION_READ","FileActions","TYPE_INLINE","actionSpec","isDefault","unreadComments","$actionLink","actionHandler","fileName","showDetailsView","oldElementToFile","elementToFile","Plugins","register","ActivityTabViewPlugin","prepareModelForDisplay","view","$overlay","_onClickCollapsedComment","Comment","fileAppLoaded","App","renderCommentResult","$nofilterresults","updateLegacyMimetype","$pathDiv","path","$avatar","authorName","authorId","comment","prepend","link","dir","dirname","generateUrl","scrollto","handleCommentClick","changeDirectory","scrollTo","mime_type","setFileList","setRenderer","setHandler","Search","a","define","__WEBPACK_AMD_DEFINE_RESULT__","returnExportsGlobal","b","g","h","$inputor","domInputor","setPos","getIEPosition","getPosition","getOffset","getOldIEPos","selection","createRange","createTextRange","moveToElementText","setEndPoint","getPos","range","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","duplicate","moveStart","height","getBoundingClientRect","bottom","f","getSelection","setStart","insertNode","selectNode","scrollTop","scrollLeft","rangeCount","getRangeAt","getIEPos","parentElement","moveToBookmark","getBookmark","collapse","compareEndPoints","selectionStart","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","test","navigator","userAgent","val","slice","rect","css_attr","mirrorCss","zIndex","$mirror","contentEditable","pos","iframe","contentWindow","caret","isPlainObject","EditableCaret","InputCaret","Utils","apis","__WEBPACK_AMD_DEFINE_ARRAY__","ESC","TAB","ENTER","CTRL","A","P","N","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","arrayToDefaultHash","matcher","decodeURI","exec","String","toLowerCase","atwho_order","sort","tplEval","beforeInsert","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","ownerDocument","defaultView","parentWindow","frameElement","debug","iframeAsRoot","controller","setContextFor","reg","alias","init","hide","isComposing","setTimeout","dispatch","onKeyup","onKeydown","expectedQueryCBId","getOpt","shutdown","off","lookUp","ctrlKey","visible","prev","next","highlighted","choose","app","setting","u","Math","random","substr","reload","callDefault","insertContentFor","atwho-at","renderView","isArray","catchQuery","_delayLookUp","_lookUp","now","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","constructor","proxy","__super__","headPos","endPos","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","removeAllRanges","addRange","_movingEvent","which","_unwrap","unwrap","nodeValue","collapsed","startContainer","contents","last","nodeType","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","surroundContents","el","first","getClientRects","storage","saved","load","_load","dataType","done","$elUl","children","timeoutID","bindEvent","charCodeAt","clientX","clientY","expr","filters","stopShowing","reposition","offsetTop","offsetHeight","animate","isNaN","isSelecting","setIframe","run","Array","headerTpl","functionOverrides","suffix","hideWithoutSuffix","startWithSpace","acceptSpaceBar","highlightFirst","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","locals"],"mappings":"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","file":"comments.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = jQuery;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};","import './app'\nimport './templates'\nimport './commentmodel'\nimport './commentcollection'\nimport './commentsummarymodel'\nimport './commentstabview'\nimport './commentsmodifymenu'\nimport './filesplugin'\nimport './activitytabviewplugin'\nimport './search'\n\nimport './vendor/Caret.js/dist/jquery.caret.min'\nimport './vendor/At.js/dist/js/jquery.atwho.min'\n\nimport './style/autocomplete.scss'\nimport './style/comments.scss'\n\nwindow.OCA.Comments = OCA.Comments;\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n})();\n\n","(function() {\n var template = Handlebars.template, templates = OCA.Comments.Templates = OCA.Comments.Templates || {};\ntemplates['comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" unread\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" collapsed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" currentUser\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"data-username=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<a href=\\\"#\\\" class=\\\"action more icon icon-more has-tooltip\\\"></a>\\n\t\t\t<div class=\\\"deleteLoading icon-loading-small hidden\\\"></div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<div class=\\\"message-overlay\\\"></div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<li class=\\\"comment\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUnread : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.actorId : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> </div>\\n\t\t<div class=\\\"author\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<div class=\\\"date has-tooltip live-relative-timestamp\\\" data-timestamp=\\\"\"\n + alias4(((helper = (helper = helpers.timestamp || (depth0 != null ? depth0.timestamp : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"timestamp\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.altDate || (depth0 != null ? depth0.altDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"altDate\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t</div>\\n\t<div class=\\\"message\\\">\"\n + ((stack1 = ((helper = (helper = helpers.formattedMessage || (depth0 != null ? depth0.formattedMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"formattedMessage\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</li>\\n\";\n},\"useData\":true});\ntemplates['commentsmodifymenu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"menuitem action \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \" permanent\\\" data-action=\\\"\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.iconClass : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t<span>\"\n + alias4(((helper = (helper = helpers.displayName || (depth0 != null ? depth0.displayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t<span class=\\\"icon \"\n + container.escapeExpression(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></span>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t<span class=\\\"no-icon\\\"></span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"<ul>\\n\"\n + ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['edit_comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t<div class=\\\"action-container\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"action cancel icon icon-close has-tooltip\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.cancelText || (depth0 != null ? depth0.cancelText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"cancelText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\t\t\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \" class=\\\"newCommentRow comment\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar currentUser\\\" data-username=\\\"\"\n + alias4(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></div>\\n\t\t<div class=\\\"author currentUser\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEditMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<form class=\\\"newCommentForm\\\">\\n\t\t<div contentEditable=\\\"true\\\" class=\\\"message\\\" data-placeholder=\\\"\"\n + alias4(((helper = (helper = helpers.newMessagePlaceholder || (depth0 != null ? depth0.newMessagePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newMessagePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t\t<input class=\\\"submit icon-confirm has-tooltip\\\" type=\\\"submit\\\" value=\\\"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.submitText || (depth0 != null ? depth0.submitText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"submitText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n\t\t<div class=\\\"submitLoading icon-loading-small hidden\\\"></div>\\n\t</form>\\n</\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \">\\n\";\n},\"useData\":true});\ntemplates['filesplugin'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<a class=\\\"action action-comment permanent\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.countMessage || (depth0 != null ? depth0.countMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"countMessage\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" href=\\\"#\\\">\\n\t<img class=\\\"svg\\\" src=\\\"\"\n + alias4(((helper = (helper = helpers.iconUrl || (depth0 != null ? depth0.iconUrl : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconUrl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n</a>\\n\";\n},\"useData\":true});\ntemplates['view'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<ul class=\\\"comments\\\">\\n</ul>\\n<div class=\\\"emptycontent hidden\\\"><div class=\\\"icon-comment\\\"></div>\\n\t<p>\"\n + alias4(((helper = (helper = helpers.emptyResultLabel || (depth0 != null ? depth0.emptyResultLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"emptyResultLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p></div>\\n<input type=\\\"button\\\" class=\\\"showMore hidden\\\" value=\\\"\"\n + alias4(((helper = (helper = helpers.moreLabel || (depth0 != null ? depth0.moreLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"moreLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" name=\\\"show-more\\\" id=\\\"show-more\\\" />\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_MESSAGE: \t'{' + OC.Files.Client.NS_OWNCLOUD + '}message',\n\t\tPROPERTY_ACTORTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',\n\t\tPROPERTY_ACTORID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',\n\t\tPROPERTY_ISUNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',\n\t\tPROPERTY_OBJECTID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',\n\t\tPROPERTY_OBJECTTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',\n\t\tPROPERTY_ACTORDISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',\n\t\tPROPERTY_CREATIONDATETIME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',\n\t\tPROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentModel\n\t * @classdesc\n\t *\n\t * Comment\n\t *\n\t */\n\tvar CommentModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\tdefaults: {\n\t\t\tactorType: 'users',\n\t\t\tobjectType: 'files'\n\t\t},\n\n\t\tdavProperties: {\n\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t'message':\tOC.Files.Client.PROPERTY_MESSAGE,\n\t\t\t'actorType':\tOC.Files.Client.PROPERTY_ACTORTYPE,\n\t\t\t'actorId':\tOC.Files.Client.PROPERTY_ACTORID,\n\t\t\t'actorDisplayName':\tOC.Files.Client.PROPERTY_ACTORDISPLAYNAME,\n\t\t\t'creationDateTime':\tOC.Files.Client.PROPERTY_CREATIONDATETIME,\n\t\t\t'objectType':\tOC.Files.Client.PROPERTY_OBJECTTYPE,\n\t\t\t'objectId':\tOC.Files.Client.PROPERTY_OBJECTID,\n\t\t\t'isUnread':\tOC.Files.Client.PROPERTY_ISUNREAD,\n\t\t\t'mentions': OC.Files.Client.PROPERTY_MENTIONS\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\treturn {\n\t\t\t\tid: data.id,\n\t\t\t\tmessage: data.message,\n\t\t\t\tactorType: data.actorType,\n\t\t\t\tactorId: data.actorId,\n\t\t\t\tactorDisplayName: data.actorDisplayName,\n\t\t\t\tcreationDateTime: data.creationDateTime,\n\t\t\t\tobjectType: data.objectType,\n\t\t\t\tobjectId: data.objectId,\n\t\t\t\tisUnread: (data.isUnread === 'true'),\n\t\t\t\tmentions: this._parseMentions(data.mentions)\n\t\t\t};\n\t\t},\n\n\t\t_parseMentions: function(mentions) {\n\t\t\tif(_.isUndefined(mentions)) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tvar result = {};\n\t\t\tfor(var i in mentions) {\n\t\t\t\tvar mention = mentions[i];\n\t\t\t\tif(_.isUndefined(mention.localName) || mention.localName !== 'mention') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tresult[i] = {};\n\t\t\t\tfor (var child = mention.firstChild; child; child = child.nextSibling) {\n\t\t\t\t\tif(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tresult[i][child.localName] = child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentModel = CommentModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @class OCA.Comments.CommentCollection\n\t * @classdesc\n\t *\n\t * Collection of comments assigned to a file\n\t *\n\t */\n\tvar CommentCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OCA.Comments.CommentCollection.prototype */ {\n\n\t\tsync: OC.Backbone.davSync,\n\n\t\tmodel: OCA.Comments.CommentModel,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\t/**\n\t\t * True if there are no more page results left to fetch\n\t\t *\n\t\t * @type bool\n\t\t */\n\t\t_endReached: false,\n\n\t\t/**\n\t\t * Number of comments to fetch per page\n\t\t *\n\t\t * @type int\n\t\t */\n\t\t_limit : 20,\n\n\t\t/**\n\t\t * Initializes the collection\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(models, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t\tif (options.objectId) {\n\t\t\t\tthis._objectId = options.objectId;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this._objectId) + '/';\n\t\t},\n\n\t\tsetObjectId: function(objectId) {\n\t\t\tthis._objectId = objectId;\n\t\t},\n\n\t\thasMoreResults: function() {\n\t\t\treturn !this._endReached;\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis._endReached = false;\n\t\t\tthis._summaryModel = null;\n\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Fetch the next set of results\n\t\t */\n\t\tfetchNext: function(options) {\n\t\t\tvar self = this;\n\t\t\tif (!this.hasMoreResults()) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar body = '<?xml version=\"1.0\" encoding=\"utf-8\" ?>\\n' +\n\t\t\t\t'<oc:filter-comments xmlns:D=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n' +\n\t\t\t\t// load one more so we know there is more\n\t\t\t\t' <oc:limit>' + (this._limit + 1) + '</oc:limit>\\n' +\n\t\t\t\t' <oc:offset>' + this.length + '</oc:offset>\\n' +\n\t\t\t\t'</oc:filter-comments>\\n';\n\n\t\t\toptions = options || {};\n\t\t\tvar success = options.success;\n\t\t\toptions = _.extend({\n\t\t\t\tremove: false,\n\t\t\t\tparse: true,\n\t\t\t\tdata: body,\n\t\t\t\tdavProperties: CommentCollection.prototype.model.prototype.davProperties,\n\t\t\t\tsuccess: function(resp) {\n\t\t\t\t\tif (resp.length <= self._limit) {\n\t\t\t\t\t\t// no new entries, end reached\n\t\t\t\t\t\tself._endReached = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// remove last entry, for next page load\n\t\t\t\t\t\tresp = _.initial(resp);\n\t\t\t\t\t}\n\t\t\t\t\tif (!self.set(resp, options)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tsuccess.apply(null, arguments);\n\t\t\t\t\t}\n\t\t\t\t\tself.trigger('sync', 'REPORT', self, options);\n\t\t\t\t}\n\t\t\t}, options);\n\n\t\t\treturn this.sync('REPORT', this, options);\n\t\t},\n\n\t\t/**\n\t\t * Returns the matching summary model\n\t\t *\n\t\t * @return {OCA.Comments.CommentSummaryModel} summary model\n\t\t */\n\t\tgetSummaryModel: function() {\n\t\t\tif (!this._summaryModel) {\n\t\t\t\tthis._summaryModel = new OCA.Comments.CommentSummaryModel({\n\t\t\t\t\tid: this._objectId,\n\t\t\t\t\tobjectType: this._objectType\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this._summaryModel;\n\t\t},\n\n\t\t/**\n\t\t * Updates the read marker for this comment thread\n\t\t *\n\t\t * @param {Date} [date] optional date, defaults to now\n\t\t * @param {Object} [options] backbone options\n\t\t */\n\t\tupdateReadMarker: function(date, options) {\n\t\t\toptions = options || {};\n\n\t\t\treturn this.getSummaryModel().save({\n\t\t\t\treadMarker: (date || new Date()).toUTCString()\n\t\t\t}, options);\n\t\t}\n\t});\n\n\tOCA.Comments.CommentCollection = CommentCollection;\n})(OC, OCA);\n\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_READMARKER:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}readMarker'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentSummaryModel\n\t * @classdesc\n\t *\n\t * Model containing summary information related to comments\n\t * like the read marker.\n\t *\n\t */\n\tvar CommentSummaryModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentSummaryModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\tdavProperties: {\n\t\t\t'readMarker': OC.Files.Client.PROPERTY_READMARKER\n\t\t},\n\n\t\t/**\n\t\t * Initializes the summary model\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(attrs, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this.id) + '/';\n\t\t}\n\t});\n\n\tOCA.Comments.CommentSummaryModel = CommentSummaryModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars, escapeHTML */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @memberof OCA.Comments\n\t */\n\tvar CommentsTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Comments.CommentsTabView.prototype */ {\n\t\tid: 'commentsTabView',\n\t\tclassName: 'tab commentsTabView',\n\t\t_autoCompleteData: undefined,\n\t\t_commentsModifyMenu: undefined,\n\n\t\tevents: {\n\t\t\t'submit .newCommentForm': '_onSubmitComment',\n\t\t\t'click .showMore': '_onClickShowMore',\n\t\t\t'click .cancel': '_onClickCloseComment',\n\t\t\t'click .comment': '_onClickComment',\n\t\t\t'keyup div.message': '_onTextChange',\n\t\t\t'change div.message': '_onTextChange',\n\t\t\t'input div.message': '_onTextChange',\n\t\t\t'paste div.message': '_onPaste'\n\t\t},\n\n\t\t_commentMaxLength: 1000,\n\n\t\tinitialize: function() {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);\n\t\t\tthis.collection = new OCA.Comments.CommentCollection();\n\t\t\tthis.collection.on('request', this._onRequest, this);\n\t\t\tthis.collection.on('sync', this._onEndRequest, this);\n\t\t\tthis.collection.on('add', this._onAddModel, this);\n\t\t\tthis.collection.on('change:message', this._onChangeModel, this);\n\n\t\t\tthis._commentMaxThreshold = this._commentMaxLength * 0.9;\n\n\t\t\t// TODO: error handling\n\t\t\t_.bindAll(this, '_onTypeComment', '_initAutoComplete', '_onAutoComplete');\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['view'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName\n\t\t\t}, params));\n\t\t},\n\n\t\teditCommentTemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['edit_comment'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\tnewMessagePlaceholder: t('comments', 'New comment …'),\n\t\t\t\tsubmitText: t('comments', 'Post'),\n\t\t\t\tcancelText: t('comments', 'Cancel'),\n\t\t\t\ttag: 'li'\n\t\t\t}, params));\n\t\t},\n\n\t\tcommentTemplate: function(params) {\n\t\t\tparams = _.extend({\n\t\t\t\teditTooltip: t('comments', 'Edit comment'),\n\t\t\t\tisUserAuthor: OC.getCurrentUser().uid === params.actorId,\n\t\t\t\tisLong: this._isLong(params.message)\n\t\t\t}, params);\n\n\t\t\tif (params.actorType === 'deleted_users') {\n\t\t\t\t// makes the avatar a X\n\t\t\t\tparams.actorId = null;\n\t\t\t\tparams.actorDisplayName = t('comments', '[Deleted user]');\n\t\t\t}\n\n\t\t\treturn OCA.Comments.Templates['comment'](params);\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('comments', 'Comments');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-comment';\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.model = fileInfo;\n\n\t\t\t\tthis.render();\n\t\t\t\tthis._initAutoComplete($('#commentsTabView').find('.newCommentForm .message'));\n\t\t\t\tthis.collection.setObjectId(this.model.id);\n\t\t\t\t// reset to first page\n\t\t\t\tthis.collection.reset([], {silent: true});\n\t\t\t\tthis.nextPage();\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t\tthis.render();\n\t\t\t\tthis.collection.reset();\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template({\n\t\t\t\temptyResultLabel: t('comments', 'No comments yet, start the conversation!'),\n\t\t\t\tmoreLabel: t('comments', 'More comments …')\n\t\t\t}));\n\t\t\tthis.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div'}));\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\t\t\tthis.$container = this.$el.find('ul.comments');\n\t\t\tthis.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);\n\t\t\tthis.delegateEvents();\n\t\t\tthis.$el.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\tautosize(this.$el.find('.newCommentRow .message'))\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t},\n\n\t\t_initAutoComplete: function($target) {\n\t\t\tvar s = this;\n\t\t\tvar limit = 10;\n\t\t\tif(!_.isUndefined(OC.appConfig.comments)) {\n\t\t\t\tlimit = OC.appConfig.comments.maxAutoCompleteResults;\n\t\t\t}\n\t\t\t$target.atwho({\n\t\t\t\tat: '@',\n\t\t\t\tlimit: limit,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tremoteFilter: s._onAutoComplete,\n\t\t\t\t\thighlighter: function (li) {\n\t\t\t\t\t\t// misuse the highlighter callback to instead of\n\t\t\t\t\t\t// highlighting loads the avatars.\n\t\t\t\t\t\tvar $li = $(li);\n\t\t\t\t\t\t$li.find('.avatar').avatar(undefined, 32);\n\t\t\t\t\t\treturn $li;\n\t\t\t\t\t},\n\t\t\t\t\tsorter: function (q, items) { return items; }\n\t\t\t\t},\n\t\t\t\tdisplayTpl: function (item) {\n\t\t\t\t\treturn '<li>' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span></li>';\n\t\t\t\t},\n\t\t\t\tinsertTpl: function (item) {\n\t\t\t\t\treturn '' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span>';\n\t\t\t\t},\n\t\t\t\tsearchKey: \"label\"\n\t\t\t});\n\t\t\t$target.on('inserted.atwho', function (je, $el) {\n\t\t\t\tvar editionMode = true;\n\t\t\t\ts._postRenderItem(\n\t\t\t\t\t// we need to pass the parent of the inserted element\n\t\t\t\t\t// passing the whole comments form would re-apply and request\n\t\t\t\t\t// avatars from the server\n\t\t\t\t\t$(je.target).find(\n\t\t\t\t\t\t'span[data-username=\"' + $el.find('[data-username]').data('username') + '\"]'\n\t\t\t\t\t).parent(),\n\t\t\t\t\teditionMode\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_onAutoComplete: function(query, callback) {\n\t\t\tvar s = this;\n\t\t\tif(!_.isUndefined(this._autoCompleteRequestTimer)) {\n\t\t\t\tclearTimeout(this._autoCompleteRequestTimer);\n\t\t\t}\n\t\t\tthis._autoCompleteRequestTimer = _.delay(function() {\n\t\t\t\tif(!_.isUndefined(this._autoCompleteRequestCall)) {\n\t\t\t\t\tthis._autoCompleteRequestCall.abort();\n\t\t\t\t}\n\t\t\t\tthis._autoCompleteRequestCall = $.ajax({\n\t\t\t\t\turl: OC.linkToOCS('core', 2) + 'autocomplete/get',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsearch: query,\n\t\t\t\t\t\titemType: 'files',\n\t\t\t\t\t\titemId: s.model.get('id'),\n\t\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\t\tlimit: OC.appConfig.comments.maxAutoCompleteResults\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function (request) {\n\t\t\t\t\t\trequest.setRequestHeader('Accept', 'application/json');\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function (result) {\n\t\t\t\t\t\tcallback(result.ocs.data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 400);\n\t\t},\n\n\t\t_formatItem: function(commentModel) {\n\t\t\tvar timestamp = new Date(commentModel.get('creationDateTime')).getTime();\n\t\t\tvar data = _.extend({\n\t\t\t\ttimestamp: timestamp,\n\t\t\t\tdate: OC.Util.relativeModifiedDate(timestamp),\n\t\t\t\taltDate: OC.Util.formatDate(timestamp),\n\t\t\t\tformattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))\n\t\t\t}, commentModel.attributes);\n\t\t\treturn data;\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function(type) {\n\t\t\tif (type === 'REPORT') {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t\tthis.$el.find('.showMore').addClass('hidden');\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function(type) {\n\t\t\tvar fileInfoModel = this.model;\n\t\t\tthis._toggleLoading(false);\n\t\t\tthis.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);\n\t\t\tthis.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());\n\n\t\t\tif (type !== 'REPORT') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find first unread comment\n\t\t\tvar firstUnreadComment = this.collection.findWhere({isUnread: true});\n\t\t\tif (firstUnreadComment) {\n\t\t\t\t// update read marker\n\t\t\t\tthis.collection.updateReadMarker(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\tfileInfoModel.set('commentsUnread', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was added to the\n\t\t * collection\n\t\t *\n\t\t * @param model\n\t\t * @param collection\n\t\t * @param options\n\t\t * @private\n\t\t */\n\t\t_onAddModel: function(model, collection, options) {\n\t\t\t// we need to render it immediately, to ensure that the right\n\t\t\t// order of comments is kept on opening comments tab\n\t\t\tvar $comment = $(this.commentTemplate(this._formatItem(model)));\n\t\t\tif (!_.isUndefined(options.at) && collection.length > 1) {\n\t\t\t\tthis.$container.find('li').eq(options.at).before($comment);\n\t\t\t} else {\n\t\t\t\tthis.$container.append($comment);\n\t\t\t}\n\t\t\tthis._postRenderItem($comment);\n\t\t\t$('#commentsTabView').find('.newCommentForm div.message').text('').prop('contenteditable', true);\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tvar oldMentions = model.get('mentions');\n\t\t\tvar self = this;\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\tif(_.isEqual(oldMentions, model.get('mentions'))) {\n\t\t\t\t\t\t// don't attempt to render if unnecessary, avoids flickering\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar $updated = $(self.commentTemplate(self._formatItem(model)));\n\t\t\t\t\t$comment.html($updated.html());\n\t\t\t\t\tself._postRenderItem($comment);\n\t\t\t\t}\n\t\t\t})\n\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was edited\n\t\t *\n\t\t * @param model\n\t\t * @private\n\t\t */\n\t\t_onChangeModel: function (model) {\n\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $form = this.$container.find('.comment[data-id=\"' + model.id + '\"] form');\n\t\t\tvar $row = $form.closest('.comment');\n\t\t\tvar $target = $row.data('commentEl');\n\t\t\tif(_.isUndefined($target)) {\n\t\t\t\t// ignore noise – this is only set after editing a comment and hitting post\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar self = this;\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\t$target.removeClass('hidden');\n\t\t\t\t\t$row.remove();\n\n\t\t\t\t\tvar $message = $target.find('.message');\n\t\t\t\t\t$message\n\t\t\t\t\t\t.html(self._formatMessage(model.get('message'), model.get('mentions')))\n\t\t\t\t\t\t.find('.avatar')\n\t\t\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\t\t\tself._postRenderItem($message);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_postRenderItem: function($el, editionMode) {\n\t\t\t$el.find('.has-tooltip').tooltip();\n\t\t\tvar inlineAvatars = $el.find('.message .avatar');\n\t\t\tif ($($el.context).hasClass('message')) {\n\t\t\t\tinlineAvatars = $el.find('.avatar');\n\t\t\t}\n\t\t\tinlineAvatars.each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 16);\n\t\t\t});\n\t\t\t$el.find('.authorRow .avatar').each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 32);\n\t\t\t});\n\n\t\t\tvar username = $el.find('.avatar').data('username');\n\t\t\tif (username !== OC.getCurrentUser().uid) {\n\t\t\t\t$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(\n\t\t\t\t\tusername, 0, $el.find('.authorRow'));\n\t\t\t}\n\n\t\t\tvar $message = $el.find('.message');\n\t\t\tif($message.length === 0) {\n\t\t\t\t// it is the case when writing a comment and mentioning a person\n\t\t\t\t$message = $el;\n\t\t\t}\n\n\n\t\t\tif (!editionMode) {\n\t\t\t\tvar self = this;\n\t\t\t\t// add the dropdown menu to display the edit and delete option\n\t\t\t\tvar modifyCommentMenu = new OCA.Comments.CommentsModifyMenu();\n\t\t\t\t$el.find('.authorRow').append(modifyCommentMenu.$el);\n\t\t\t\t$el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu));\n\n\t\t\t\tself.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) {\n\t\t\t\t\tif (action === 'edit') {\n\t\t\t\t\t\tself._onClickEditComment(ev);\n\t\t\t\t\t} else if (action === 'delete') {\n\t\t\t\t\t\tself._onClickDeleteComment(ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._postRenderMessage($message, editionMode);\n\t\t},\n\n\t\t_postRenderMessage: function($el, editionMode) {\n\t\t\tif (editionMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$el.find('.avatar-name-wrapper').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar $avatar = $this.find('.avatar');\n\n\t\t\t\tvar user = $avatar.data('user');\n\t\t\t\tif (user !== OC.getCurrentUser().uid) {\n\t\t\t\t\t$this.contactsMenu(user, 0, $this);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Convert a message to be displayed in HTML,\n\t\t * converts newlines to <br> tags.\n\t\t */\n\t\t_formatMessage: function(message, mentions, editMode) {\n\t\t\tmessage = escapeHTML(message).replace(/\\n/g, '<br/>');\n\n\t\t\tfor(var i in mentions) {\n\t\t\t\tif(!mentions.hasOwnProperty(i)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar mention = '@' + mentions[i].mentionId;\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tmention = _.escape('@\"' + mentions[i].mentionId + '\"');\n\t\t\t\t}\n\n\t\t\t\t// escape possible regex characters in the name\n\t\t\t\tmention = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t\t\tvar regex = new RegExp(\"(^|\\\\s)(\" + mention + \")\\\\b\", 'g');\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tregex = new RegExp(\"(^|\\\\s)(\" + mention + \")\", 'g');\n\t\t\t\t}\n\n\t\t\t\tvar displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);\n\n\t\t\t\t// replace every mention either at the start of the input or after a whitespace\n\t\t\t\t// followed by a non-word character.\n\t\t\t\tmessage = message.replace(regex,\n\t\t\t\t\tfunction(match, p1) {\n\t\t\t\t\t\t// to get number of whitespaces (0 vs 1) right\n\t\t\t\t\t\treturn p1+displayName;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif(editMode !== true) {\n\t\t\t\tmessage = OCP.Comments.plainToRich(message);\n\t\t\t}\n\t\t\treturn message;\n\t\t},\n\n\t\t_composeHTMLMention: function(uid, displayName) {\n\t\t\tvar avatar = '' +\n\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t'data-username=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user-display-name=\"' + _.escape(displayName) + '\">' +\n\t\t\t\t'</span>';\n\n\t\t\tvar isCurrentUser = (uid === OC.getCurrentUser().uid);\n\n\t\t\treturn '' +\n\t\t\t\t'<span class=\"atwho-inserted\" contenteditable=\"false\">' +\n\t\t\t\t\t'<span class=\"avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '\">' +\n\t\t\t\t\t\tavatar +\n\t\t\t\t\t\t'<strong>' + _.escape(displayName) + '</strong>' +\n\t\t\t\t\t'</span>' +\n\t\t\t\t'</span>';\n\t\t},\n\n\t\tnextPage: function() {\n\t\t\tif (this._loading || !this.collection.hasMoreResults()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.collection.fetchNext();\n\t\t},\n\n\t\t_onClickEditComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar commentToEdit = this.collection.get(commentId);\n\t\t\tvar $formRow = $(this.editCommentTemplate(_.extend({\n\t\t\t\tisEditMode: true,\n\t\t\t\tsubmitText: t('comments', 'Save')\n\t\t\t}, commentToEdit.attributes)));\n\n\t\t\t$comment.addClass('hidden').removeClass('collapsed');\n\t\t\t// spawn form\n\t\t\t$comment.after($formRow);\n\t\t\t$formRow.data('commentEl', $comment);\n\t\t\t$formRow.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\t// copy avatar element from original to avoid flickering\n\t\t\t$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());\n\t\t\t$formRow.find('.has-tooltip').tooltip();\n\n\t\t\tvar $message = $formRow.find('.message');\n\t\t\t$message\n\t\t\t\t.html(this._formatMessage(commentToEdit.get('message'), commentToEdit.get('mentions'), true))\n\t\t\t\t.find('.avatar')\n\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\tvar editionMode = true;\n\t\t\tthis._postRenderItem($message, editionMode);\n\n\t\t\t// Enable autosize\n\t\t\tautosize($formRow.find('.message'));\n\n\t\t\t// enable autocomplete\n\t\t\tthis._initAutoComplete($formRow.find('.message'));\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onTypeComment: function(ev) {\n\t\t\tvar $field = $(ev.target);\n\t\t\tvar len = $field.text().length;\n\t\t\tvar $submitButton = $field.data('submitButtonEl');\n\t\t\tif (!$submitButton) {\n\t\t\t\t$submitButton = $field.closest('form').find('.submit');\n\t\t\t\t$field.data('submitButtonEl', $submitButton);\n\t\t\t}\n\t\t\t$field.tooltip('hide');\n\t\t\tif (len > this._commentMaxThreshold) {\n\t\t\t\t$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));\n\t\t\t\t$field.tooltip({trigger: 'manual'});\n\t\t\t\t$field.tooltip('show');\n\t\t\t\t$field.addClass('error');\n\t\t\t}\n\n\t\t\tvar limitExceeded = (len > this._commentMaxLength);\n\t\t\t$field.toggleClass('error', limitExceeded);\n\t\t\t$submitButton.prop('disabled', limitExceeded);\n\n\t\t\t// Submits form with Enter, but Shift+Enter is a new line. If the\n\t\t\t// autocomplete popover is being shown Enter does not submit the\n\t\t\t// form either; it will be handled by At.js which will add the\n\t\t\t// currently selected item to the message.\n\t\t\tif (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) {\n\t\t\t\t$submitButton.click();\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_onClickComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t_onClickCloseComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $row = $(ev.target).closest('.comment');\n\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t$row.remove();\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickDeleteComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar $loading = $comment.find('.deleteLoading');\n\t\t\tvar $moreIcon = $comment.find('.more');\n\n\t\t\t$comment.addClass('disabled');\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$moreIcon.addClass('hidden');\n\n\t\t\t$comment.data('commentEl', $comment);\n\n\t\t\tthis.collection.get(commentId).destroy({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$comment.data('commentEl').remove();\n\t\t\t\t\t$comment.remove();\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$moreIcon.removeClass('hidden');\n\t\t\t\t\t$comment.removeClass('disabled');\n\n\t\t\t\t\tOC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId}));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickShowMore: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tthis.nextPage();\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating comment element states after submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {OC.Backbone.Model} model\n\t\t * @param {jQuery} $form\n\t\t * @private\n\t\t */\n\t\t_onSubmitSuccess: function(model, $form) {\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\n\t\t\t$submit.removeClass('hidden');\n\t\t\t$loading.addClass('hidden');\n\t\t},\n\n\t\t_commentBodyHTML2Plain: function($el) {\n\t\t\tvar $comment = $el.clone();\n\n\t\t\t$comment.find('.avatar-name-wrapper').each(function () {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\t$inserted = $this.parent(),\n\t\t\t\t\tuserId = $this.find('.avatar').data('username');\n\t\t\t\tif (userId.indexOf(' ') !== -1) {\n\t\t\t\t\t$inserted.html('@\"' + userId + '\"');\n\t\t\t\t} else {\n\t\t\t\t\t$inserted.html('@' + userId);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$comment.html(OCP.Comments.richToPlain($comment.html()));\n\n\t\t\tvar oldHtml;\n\t\t\tvar html = $comment.html();\n\t\t\tdo {\n\t\t\t\t// replace works one by one\n\t\t\t\toldHtml = html;\n\t\t\t\thtml = oldHtml.replace(\"<br>\", \"\\n\");\t// preserve line breaks\n\t\t\t} while(oldHtml !== html);\n\t\t\t$comment.html(html);\n\n\t\t\treturn $comment.text();\n\t\t},\n\n\t\t_onSubmitComment: function(e) {\n\t\t\tvar self = this;\n\t\t\tvar $form = $(e.target);\n\t\t\tvar commentId = $form.closest('.comment').data('id');\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\t\t\tvar $commentField = $form.find('.message');\n\t\t\tvar message = $commentField.text().trim();\n\t\t\te.preventDefault();\n\n\t\t\tif (!message.length || message.length > this._commentMaxLength) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$commentField.prop('contenteditable', false);\n\t\t\t$submit.addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tmessage = this._commentBodyHTML2Plain($commentField);\n\t\t\tif (commentId) {\n\t\t\t\t// edit mode\n\t\t\t\tvar comment = this.collection.get(commentId);\n\t\t\t\tcomment.save({\n\t\t\t\t\tmessage: message\n\t\t\t\t}, {\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\t\t\t\t// model change event doesn't trigger, manually remove the row.\n\t\t\t\t\t\t\tvar $row = $form.closest('.comment');\n\t\t\t\t\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, commentId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.collection.create({\n\t\t\t\t\tactorId: currentUser.uid,\n\t\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\t\tactorType: 'users',\n\t\t\t\t\tverb: 'comment',\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tcreationDateTime: (new Date()).toUTCString()\n\t\t\t\t}, {\n\t\t\t\t\tat: 0,\n\t\t\t\t\t// wait for real creation before adding\n\t\t\t\t\twait: true,\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating the UI after an error on submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {jQuery} $form\n\t\t * @param {string|undefined} commentId\n\t\t * @private\n\t\t */\n\t\t_onSubmitError: function($form, commentId) {\n\t\t\t$form.find('.submit').removeClass('hidden');\n\t\t\t$form.find('.submitLoading').addClass('hidden');\n\t\t\t$form.find('.message').prop('contenteditable', true);\n\n\t\t\tif(!_.isUndefined(commentId)) {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}), {type: 'error'});\n\t\t\t} else {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while posting comment'), {type: 'error'});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * ensures the contenteditable div is really empty, when user removed\n\t\t * all input, so that the placeholder will be shown again\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_onTextChange: function() {\n\t\t\tvar $message = $('#commentsTabView').find('.newCommentForm div.message');\n\t\t\tif(!$message.text().trim().length) {\n\t\t\t\t$message.empty();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Limit pasting to plain text\n\t\t *\n\t\t * @param e\n\t\t * @private\n\t\t */\n\t\t_onPaste: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar text = e.originalEvent.clipboardData.getData(\"text/plain\");\n\t\t\tdocument.execCommand('insertText', false, text);\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given message is long and needs\n\t\t * collapsing\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentsTabView = CommentsTabView;\n})(OC, OCA);\n","/*\n * Copyright (c) 2018\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n(function() {\n\n\t/**\n\t * Construct a new CommentsModifyMenuinstance\n\t * @constructs CommentsModifyMenu\n\t * @memberof OC.Comments\n\t * @private\n\t */\n\tvar CommentsModifyMenu = OC.Backbone.View.extend({\n\t\ttagName: 'div',\n\t\tclassName: 'commentsModifyMenu popovermenu bubble menu',\n\t\t_scopes: [\n\t\t\t{\n\t\t\t\tname: 'edit',\n\t\t\t\tdisplayName: t('comments', 'Edit comment'),\n\t\t\t\ticonClass: 'icon-rename'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'delete',\n\t\t\t\tdisplayName: t('comments', 'Delete comment'),\n\t\t\t\ticonClass: 'icon-delete'\n\t\t\t}\n\t\t],\n\t\tinitialize: function() {\n\n\t\t},\n\t\tevents: {\n\t\t\t'click a.action': '_onClickAction'\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever an action has been clicked within the menu\n\t\t *\n\t\t * @param {Object} event event object\n\t\t */\n\t\t_onClickAction: function(event) {\n\t\t\tvar $target = $(event.currentTarget);\n\t\t\tif (!$target.hasClass('menuitem')) {\n\t\t\t\t$target = $target.closest('.menuitem');\n\t\t\t}\n\n\t\t\tOC.hideMenus();\n\n\t\t\tthis.trigger('select:menu-item-clicked', event, $target.data('action'));\n\t\t},\n\n\t\t/**\n\t\t * Renders the menu with the currently set items\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(OCA.Comments.Templates['commentsmodifymenu']({\n\t\t\t\titems: this._scopes\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * Displays the menu\n\t\t */\n\t\tshow: function(context) {\n\t\t\tthis._context = context;\n\n\t\t\tfor(var i in this._scopes) {\n\t\t\t\tthis._scopes[i].active = false;\n\t\t\t}\n\n\n\t\t\tvar $el = $(context.target);\n\t\t\tvar offsetIcon = $el.offset();\n\t\t\tvar offsetContainer = $el.closest('.authorRow').offset();\n\n\t\t\t// adding some extra top offset to push the menu below the button.\n\t\t\tvar position = {\n\t\t\t\ttop: offsetIcon.top - offsetContainer.top + 48,\n\t\t\t\tleft: '',\n\t\t\t\tright: ''\n\t\t\t};\n\n\t\t\tposition.left = offsetIcon.left - offsetContainer.left;\n\n\t\t\tif (position.left > 200) {\n\t\t\t\t// we need to position the menu to the right.\n\t\t\t\tposition.left = '';\n\t\t\t\tposition.right = this.$el.closest('.comment').find('.date').width();\n\t\t\t\tthis.$el.removeClass('menu-left').addClass('menu-right');\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('menu-right').addClass('menu-left');\n\t\t\t}\n\t\t\tthis.$el.css(position);\n\t\t\tthis.render();\n\t\t\tthis.$el.removeClass('hidden');\n\n\t\t\tOC.showMenu(null, this.$el);\n\t\t}\n\t});\n\n\tOCA.Comments = OCA.Comments || {};\n\tOCA.Comments.CommentsModifyMenu = CommentsModifyMenu;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_COMMENTS_UNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}comments-unread'\n\t});\n\n\tOCA.Comments = _.extend({}, OCA.Comments);\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Comments.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\t_formatCommentCount: function(count) {\n\t\t\treturn OCA.Comments.Templates['filesplugin']({\n\t\t\t\tcount: count,\n\t\t\t\tcountMessage: n('comments', '%n unread comment', '%n unread comments', count),\n\t\t\t\ticonUrl: OC.imagePath('core', 'actions/comment')\n\t\t\t});\n\t\t},\n\n\t\tattach: function(fileList) {\n\t\t\tvar self = this;\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar commentsUnread = props[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];\n\t\t\t\tif (!_.isUndefined(commentsUnread) && commentsUnread !== '') {\n\t\t\t\t\tdata.commentsUnread = parseInt(commentsUnread, 10);\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tfileList.$el.addClass('has-comments');\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\t\t\t\tvar $tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tif (fileData.commentsUnread) {\n\t\t\t\t\t$tr.attr('data-comments-unread', fileData.commentsUnread);\n\t\t\t\t}\n\t\t\t\treturn $tr;\n\t\t\t};\n\n\t\t\t// register \"comment\" action for reading comments\n\t\t\tfileList.fileActions.registerAction({\n\t\t\t\tname: 'Comment',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar unread = parseInt(context.$file.data('comments-unread'), 10)\n\t\t\t\t\t\tif (unread >= 0) {\n\t\t\t\t\t\t\treturn n('comments', '1 new comment', '{unread} new comments', unread, { unread: unread })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('comments', 'Comment')\n\t\t\t\t},\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -140,\n\t\t\t\ticonClass: 'icon-comment',\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar $file = context.$file;\n\t\t\t\t\tvar unreadComments = $file.data('comments-unread');\n\t\t\t\t\tif (unreadComments) {\n\t\t\t\t\t\tvar $actionLink = $(self._formatCommentCount(unreadComments));\n\t\t\t\t\t\tcontext.$file.find('a.name>span.fileactions').append($actionLink);\n\t\t\t\t\t\treturn $actionLink;\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\tcontext.$file.find('.action-comment').tooltip('hide');\n\t\t\t\t\t// open sidebar in comments section\n\t\t\t\t\tcontext.fileList.showDetailsView(fileName, 'commentsTabView');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add attribute to \"elementToFile\"\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tvar commentsUnread = $el.data('comments-unread');\n\t\t\t\tif (commentsUnread) {\n\t\t\t\t\tfileInfo.commentsUnread = commentsUnread;\n\t\t\t\t}\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);\n","/*\n * @author Joas Schilling <coding@schilljs.com>\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n */\n\n(function() {\n\tOCA.Comments.ActivityTabViewPlugin = {\n\n\t\t/**\n\t\t * Prepare activity for display\n\t\t *\n\t\t * @param {OCA.Activity.ActivityModel} model for this activity\n\t\t * @param {jQuery} $el jQuery handle for this activity\n\t\t * @param {string} view The view that displayes this activity\n\t\t */\n\t\tprepareModelForDisplay: function (model, $el, view) {\n\t\t\tif (model.get('app') !== 'comments' || model.get('type') !== 'comments') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (view === 'ActivityTabView') {\n\t\t\t\t$el.addClass('comment');\n\t\t\t\tif (model.get('message') && this._isLong(model.get('message'))) {\n\t\t\t\t\t$el.addClass('collapsed');\n\t\t\t\t\tvar $overlay = $('<div>').addClass('message-overlay');\n\t\t\t\t\t$el.find('.activitymessage').after($overlay);\n\t\t\t\t\t$el.on('click', this._onClickCollapsedComment);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._onClickComment()\n\t\t */\n\t\t_onClickCollapsedComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._isLong()\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t};\n\n\n})();\n\nOC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function(OC, OCA, $) {\n\t\"use strict\";\n\n\t/**\n\t * Construct a new FileActions instance\n\t * @constructs Files\n\t */\n\tvar Comment = function() {\n\t\tthis.initialize();\n\t};\n\n\tComment.prototype = {\n\n\t\tfileList: null,\n\n\t\t/**\n\t\t * Initialize the file search\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.fileAppLoaded = function() {\n\t\t\t\treturn !!OCA.Files && !!OCA.Files.App;\n\t\t\t};\n\t\t\tfunction inFileList($row, result) {\n\t\t\t\treturn false;\n\n\t\t\t\tif (! self.fileAppLoaded()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar dir = self.fileList.getCurrentDirectory().replace(/\\/+$/,'');\n\t\t\t\tvar resultDir = OC.dirname(result.path);\n\t\t\t\treturn dir === resultDir && self.fileList.inList(result.name);\n\t\t\t}\n\t\t\tfunction hideNoFilterResults() {\n\t\t\t\tvar $nofilterresults = $('.nofilterresults');\n\t\t\t\tif ( ! $nofilterresults.hasClass('hidden') ) {\n\t\t\t\t\t$nofilterresults.addClass('hidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {jQuery} $row\n\t\t\t * @param {Object} result\n\t\t\t * @param {int} result.id\n\t\t\t * @param {string} result.comment\n\t\t\t * @param {string} result.authorId\n\t\t\t * @param {string} result.authorName\n\t\t\t * @param {string} result.link\n\t\t\t * @param {string} result.fileName\n\t\t\t * @param {string} result.path\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tthis.renderCommentResult = function($row, result) {\n\t\t\t\tif (inFileList($row, result)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\thideNoFilterResults();\n\t\t\t\t/*render preview icon, show path beneath filename,\n\t\t\t\t show size and last modified date on the right */\n\t\t\t\tthis.updateLegacyMimetype(result);\n\n\t\t\t\tvar $pathDiv = $('<div>').addClass('path').text(result.path);\n\n\t\t\t\tvar $avatar = $('<div>');\n\t\t\t\t$avatar.addClass('avatar')\n\t\t\t\t\t.css('display', 'inline-block')\n\t\t\t\t\t.css('vertical-align', 'middle')\n\t\t\t\t\t.css('margin', '0 5px 2px 3px');\n\n\t\t\t\tif (result.authorName) {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21, undefined, false, undefined, result.authorName);\n\t\t\t\t} else {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21);\n\t\t\t\t}\n\n\t\t\t\t$row.find('td.info div.name').after($pathDiv).text(result.comment).prepend($('<span>').addClass('path').css('margin-right', '5px').text(result.authorName)).prepend($avatar);\n\t\t\t\t$row.find('td.result a').attr('href', result.link);\n\n\t\t\t\t$row.find('td.icon')\n\t\t\t\t\t.css('background-image', 'url(' + OC.imagePath('core', 'actions/comment') + ')')\n\t\t\t\t\t.css('opacity', '.4');\n\t\t\t\tvar dir = OC.dirname(result.path);\n\t\t\t\t// \"result.path\" does not include a leading \"/\", so \"OC.dirname\"\n\t\t\t\t// returns the path itself for files or folders in the root.\n\t\t\t\tif (dir === result.path) {\n\t\t\t\t\tdir = '/';\n\t\t\t\t}\n\t\t\t\t$row.find('td.info a').attr('href',\n\t\t\t\t\tOC.generateUrl('/apps/files/?dir={dir}&scrollto={scrollto}', {dir: dir, scrollto: result.fileName})\n\t\t\t\t);\n\n\t\t\t\treturn $row;\n\t\t\t};\n\n\t\t\tthis.handleCommentClick = function($row, result, event) {\n\t\t\t\tif (self.fileAppLoaded() && self.fileList.id === 'files') {\n\t\t\t\t\tself.fileList.changeDirectory(OC.dirname(result.path));\n\t\t\t\t\tself.fileList.scrollTo(result.name);\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.updateLegacyMimetype = function (result) {\n\t\t\t\t// backward compatibility:\n\t\t\t\tif (!result.mime && result.mime_type) {\n\t\t\t\t\tresult.mime = result.mime_type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.setFileList = function (fileList) {\n\t\t\t\tthis.fileList = fileList;\n\t\t\t};\n\n\t\t\tOC.Plugins.register('OCA.Search.Core', this);\n\t\t},\n\t\tattach: function(search) {\n\t\t\tsearch.setRenderer('comment', this.renderCommentResult.bind(this));\n\t\t\tsearch.setHandler('comment', this.handleCommentClick.bind(this));\n\t\t}\n\t};\n\n\tOCA.Search.comment = new Comment();\n})(OC, OCA, $);\n","/*! jquery.caret 2015-02-01 */\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(c){return a.returnExportsGlobal=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"jquery\")):b(jQuery)}(this,function(a){\"use strict\";var b,c,d,e,f,g,h,i,j,k,l;k=\"caret\",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(){return this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint(\"EndToEnd\",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart(\"character\",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer===!this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode(\"|\")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\\r\\n/g,\"\\n\"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints(\"StartToEnd\",a)>-1?c:-g.moveStart(\"character\",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move(\"character\",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move(\"character\",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|\"|&/g,\"?\").replace(/\\r\\n|\\r|\\n/g,\"<br/>\"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\\s/g,\"&nbsp;\")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g=\"<span style='position: relative; display: inline;'>\"+f(i)+\"</span>\",g+=\"<span id='caret' style='position: relative; display: inline;'>|</span>\",g+=\"<span style='position: relative; display: inline;'>\"+f(e)+\"</span>\",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderLeftStyle\",\"borderTopWidth\",\"boxSizing\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"height\",\"letterSpacing\",\"lineHeight\",\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"outlineWidth\",\"overflow\",\"overflowX\",\"overflowY\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"textAlign\",\"textOverflow\",\"textTransform\",\"whiteSpace\",\"wordBreak\",\"wordWrap\"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:\"absolute\",left:-9999,top:0,zIndex:-2e4},\"TEXTAREA\"===this.$inputor.prop(\"tagName\")&&this.css_attr.push(\"width\"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a(\"<div></div>\"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find(\"#caret\"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||\"true\"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error(\"Method \"+d+\" does not exist on jQuery.caret\")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});","!function(t,e){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(t){return e(t)}):\"object\"==typeof exports?module.exports=e(require(\"jquery\")):e(jQuery)}(this,function(t){var e,i;i={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),i&&(t=\"(?:^|\\\\s)\"+t),r=decodeURI(\"%C3%80\"),o=decodeURI(\"%C3%BF\"),h=n?\" \":\"\",a=new RegExp(t+\"([A-Za-z\"+r+\"-\"+o+\"0-9_\"+h+\"'.+-]*)$|\"+t+\"([^\\\\x00-\\\\xff]*)$\",\"gi\"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return\"string\"!=typeof t&&(r=t(e)),r.replace(/\\$\\{([^\\}]*)\\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,\"\"}},highlighter:function(t,e){var i;return e?(i=new RegExp(\">\\\\s*([^<]*?)(\"+e.replace(\"+\",\"\\\\+\")+\")([^<]*)\\\\s*<\",\"ig\"),t.replace(i,function(t,e,i,n){return\"> \"+e+\"<strong>\"+i+\"</strong>\"+n+\" <\"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t(\"<div class='atwho-container'></div>\"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is(\"[contentEditable]\")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on(\"compositionstart\",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on(\"compositionend\",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on(\"keyup.atwhoInner\",function(t){return function(e){return t.onKeyup(e)}}(this)).on(\"keydown.atwhoInner\",function(t){return function(e){return t.onKeydown(e)}}(this)).on(\"blur.atwhoInner\",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt(\"displayTimeout\"))):void 0}}(this)).on(\"click.atwhoInner\",function(t){return function(e){return t.dispatch(e)}}(this)).on(\"scroll.atwhoInner\",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(\".atwhoInner\"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt(\"spaceSelectsMatch\")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt(\"tabSelectsMatch\")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t(\"#atwho-ground-\"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t(\"<div id='atwho-ground-\"+this.id+\"'></div>\")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+\"000000000\").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho[\"default\"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger(\"beforeDestroy\"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+\" Or maybe At.js doesn't have function \"+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt(\"alias\"),n=i?t+\"-\"+i+\".atwho\":t+\".atwho\",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt(\"callbacks\")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt(\"insertTpl\"),i=t.extend({},e.data(\"item-data\"),{\"atwho-at\":this.at}),this.callbacks(\"tplEval\").call(this,n,i,\"onInsert\")},i.prototype.renderView=function(t){var e;return e=this.getOpt(\"searchKey\"),t=this.callbacks(\"sorter\").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt(\"limit\")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||\"click\"!==t.type||this.getOpt(\"lookUpOnClick\"))&&(!this.getOpt(\"suspendOnComposing\")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt(\"delay\"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret(\"pos\",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks(\"matcher\").call(this,this.at,s,this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),n=\"string\"==typeof r,n&&r.length<this.getOpt(\"minLen\",0)?void 0:(n&&r.length<=this.getOpt(\"maxLen\",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger(\"matched\",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret(\"offset\",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",t+=o,s=\"\"+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret(\"pos\",r.length+t.length,{iframe:this.app.iframe}),i.is(\":focus\")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n&&i?(i=t(i)[0],\"after\"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return\"click\"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(\".atwho-query\")).contents().unwrap(),r.is(\":empty\")&&r.remove(),(r=t(\".atwho-query\",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(\".atwho-inserted\")&&(a=t(d.startContainer).contents().get(c),this._setRange(\"after\",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(\".atwho-inserted\")&&0===d.startOffset&&this._setRange(\"after\",n.contents().last()))}if(t(d.startContainer).closest(\".atwho-inserted\").addClass(\"atwho-query\").siblings().removeClass(\"atwho-query\"),(r=t(\".atwho-query\",this.app.document)).length>0&&r.is(\":empty\")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass(\"atwho-inserted\"),r.length>0)switch(e.which){case i.LEFT:return this._setRange(\"before\",r.get(0),d),void r.removeClass(\"atwho-query\");case i.RIGHT:return this._setRange(\"after\",r.get(0).nextSibling,d),void r.removeClass(\"atwho-query\")}if(r.length>0&&(f=r.attr(\"data-atwho-at-query\"))&&(r.empty().html(f).attr(\"data-atwho-at-query\",null),this._setRange(\"after\",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks(\"matcher\").call(this,this.at,o.toString(),this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),h=\"string\"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t(\"<span/>\",this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass(\"atwho-query\"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),l&&(/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange(\"after\",l,d))),!(h&&u.length<this.getOpt(\"minLen\",0)))return h&&u.length<=this.getOpt(\"maxLen\",20)?(p={text:u,el:r},this.trigger(\"matched\",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass(\"atwho-inserted\")?r.removeClass(\"atwho-query\"):!1!==this.callbacks(\"afterMatchFailed\").call(this,this.at,r)&&this._setRange(\"after\",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),n&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},n.prototype.insert=function(t,e){var i,n,r,o,s;return this.$inputor.is(\":focus\")||this.$inputor.focus(),n=this.getOpt(\"functionOverrides\"),n.insert?n.insert.call(this,t,e):(o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",i=e.data(\"item-data\"),this.query.el.removeClass(\"atwho-query\").addClass(\"atwho-inserted\").html(t).attr(\"data-atwho-at-query\",\"\"+i[\"atwho-at\"]+this.query.text).attr(\"contenteditable\",\"false\"),(r=this._getRange())&&(this.query.el.length&&r.setEndAfter(this.query.el[0]),r.collapse(!1),r.insertNode(s=this.app.document.createTextNode(\"\"+o)),this._setRange(\"after\",s,r)),this.$inputor.is(\":focus\")||this.$inputor.focus(),this.$inputor.change())},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt(\"searchKey\"),n=this.context.callbacks(\"filter\").call(this.context,t,n,r)||[],i=this.context.callbacks(\"remoteFilter\"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks(\"beforeSave\").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return\"string\"==typeof e?t.ajax(e,{dataType:\"json\"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt(\"alias\")||this.context.at.charCodeAt(0),t=this.context.getOpt(\"headerTpl\"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:\"at-view-\"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find(\"ul\"),i=0,n=0,e.on(\"mousemove.atwho-view\",\"li\",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass(\"cur\")))return e.find(\".cur\").removeClass(\"cur\"),o.addClass(\"cur\")}}(this)).on(\"click.atwho-view\",\"li\",function(i){return function(n){return e.find(\".cur\").removeClass(\"cur\"),t(n.currentTarget).addClass(\"cur\"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(\".cur\").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(\".cur\")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context,i,e,t),e),this.context.trigger(\"inserted\",[e,t]),this.hide(t)),this.context.getOpt(\"hideWithoutSuffix\")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks(\"beforeReposition\"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger(\"reposition\",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),e=t.next(),e.length||(e=this.$el.find(\"li:first\")),e.addClass(\"cur\"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),i=t.prev(),i.length||(i=this.$el.find(\"li:last\")),i.addClass(\"cur\"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt(\"scrollDuration\"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger(\"shown\")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger(\"hidden\",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find(\"ul\").empty(),n=this.$el.find(\"ul\"),h=this.context.getOpt(\"displayTpl\"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{\"atwho-at\":this.context.at}),a=this.context.callbacks(\"tplEval\").call(this.context,h,o,\"onDisplay\"),i=t(this.context.callbacks(\"highlighter\").call(this.context,a,this.context.query.text)),i.data(\"item-data\",o),n.append(i);return this.show(),this.context.getOpt(\"highlightFirst\")?n.find(\"li:first\").addClass(\"cur\"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data(\"atwho\",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data(\"atwho\"))||o.data(\"atwho\",s=new n(this)),\"object\"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error(\"Method \"+e+\" does not exist on jQuery.atwho\"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho[\"default\"]={at:void 0,alias:void 0,data:null,displayTpl:\"<li>${name}</li>\",insertTpl:\"${atwho-at}${name}\",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:\"name\",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./autocomplete.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\n * based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,\\n * only changed colors and font-weight\\n */\\n.atwho-view {\\n position: absolute;\\n top: 0;\\n left: 0;\\n display: none;\\n margin-top: 18px;\\n background: var(--color-main-background);\\n color: var(--color-main-text);\\n border: 1px solid var(--color-border);\\n border-radius: var(--border-radius);\\n box-shadow: 0 0 5px var(--color-box-shadow);\\n min-width: 120px;\\n z-index: 11110 !important; }\\n\\n.atwho-view .atwho-header {\\n padding: 5px;\\n margin: 5px;\\n cursor: pointer;\\n border-bottom: solid 1px var(--color-border);\\n color: var(--color-main-text);\\n font-size: 11px;\\n font-weight: bold; }\\n\\n.atwho-view .atwho-header .small {\\n color: var(--color-main-text);\\n float: right;\\n padding-top: 2px;\\n margin-right: -5px;\\n font-size: 12px;\\n font-weight: normal; }\\n\\n.atwho-view .atwho-header:hover {\\n cursor: default; }\\n\\n.atwho-view .cur {\\n background: var(--color-primary);\\n color: var(--color-primary-text); }\\n\\n.atwho-view .cur small {\\n color: var(--color-primary-text); }\\n\\n.atwho-view strong {\\n color: var(--color-main-text);\\n font-weight: normal; }\\n\\n.atwho-view .cur strong {\\n color: var(--color-primary-text);\\n font-weight: normal; }\\n\\n.atwho-view ul {\\n /* width: 100px; */\\n list-style: none;\\n padding: 0;\\n margin: auto;\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.atwho-view ul li {\\n display: block;\\n padding: 5px 10px;\\n border-bottom: 1px solid var(--color-border);\\n cursor: pointer; }\\n\\n.atwho-view small {\\n font-size: smaller;\\n color: var(--color-main-text);\\n font-weight: normal; }\\n\", \"\"]);\n","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./comments.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#commentsTabView .emptycontent {\\n margin-top: 0; }\\n\\n#commentsTabView .newCommentForm {\\n margin-left: 36px;\\n position: relative; }\\n\\n#commentsTabView .newCommentForm .message {\\n width: 100%;\\n padding: 10px;\\n min-height: 44px;\\n margin: 0;\\n /* Prevent the text from overlapping with the submit button. */\\n padding-right: 30px; }\\n\\n#commentsTabView .newCommentForm .submit,\\n#commentsTabView .newCommentForm .submitLoading {\\n width: 44px;\\n height: 44px;\\n margin: 0;\\n padding: 13px;\\n background-color: transparent;\\n border: none;\\n opacity: .3;\\n position: absolute;\\n bottom: 0;\\n right: 0; }\\n\\n#commentsTabView .deleteLoading {\\n padding: 14px;\\n vertical-align: middle; }\\n\\n#commentsTabView .newCommentForm .submit:not(:disabled):hover,\\n#commentsTabView .newCommentForm .submit:not(:disabled):focus {\\n opacity: 1; }\\n\\n#commentsTabView .newCommentForm div.message {\\n resize: none; }\\n\\n#commentsTabView .newCommentForm div.message:empty:before {\\n content: attr(data-placeholder);\\n color: grey; }\\n\\n#commentsTabView .comment {\\n position: relative;\\n /** padding bottom is little more so that the top and bottom gap look uniform **/\\n padding: 10px 0 15px; }\\n\\n#commentsTabView .comments .comment {\\n border-top: 1px solid var(--color-border); }\\n\\n#commentsTabView .comment .avatar,\\n.atwho-view-ul * .avatar {\\n width: 32px;\\n height: 32px;\\n line-height: 32px;\\n margin-right: 5px; }\\n\\n#commentsTabView .comment .message .avatar,\\n.atwho-view-ul * .avatar {\\n display: inline-block; }\\n\\n#activityTabView li.comment.collapsed .activitymessage,\\n#commentsTabView .comment.collapsed .message {\\n white-space: pre-wrap; }\\n\\n#activityTabView li.comment.collapsed .activitymessage,\\n#commentsTabView .comment.collapsed .message {\\n max-height: 70px;\\n overflow: hidden; }\\n\\n#activityTabView li.comment .message-overlay,\\n#commentsTabView .comment .message-overlay {\\n display: none; }\\n\\n#activityTabView li.comment.collapsed .message-overlay,\\n#commentsTabView .comment.collapsed .message-overlay {\\n display: block;\\n position: absolute;\\n z-index: 2;\\n height: 50px;\\n pointer-events: none;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));\\n background-repeat: no-repeat; }\\n\\n#commentsTabView .hidden {\\n display: none !important; }\\n\\n/** set min-height as 44px to ensure that it fits the button sizes. **/\\n#commentsTabView .comment .authorRow {\\n min-height: 44px; }\\n\\n#commentsTabView .comment .authorRow .tooltip {\\n /** because of the padding on the element, the tooltip appear too far up,\\n\\t adding this brings them closer to the element**/\\n margin-top: 5px; }\\n\\n.atwho-view-ul * .avatar-name-wrapper,\\n#commentsTabView .comment .authorRow {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: 100%; }\\n\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,\\n#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,\\n#commentsTabView .comment .authorRow .avatar:not(.currentUser),\\n#commentsTabView .comment .authorRow .author:not(.currentUser) {\\n cursor: pointer; }\\n\\n.atwho-view-ul .avatar-name-wrapper,\\n.atwho-view-ul .avatar-name-wrapper .avatar,\\n.atwho-view-ul .avatar-name-wrapper .avatar img {\\n cursor: pointer; }\\n\\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,\\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper {\\n /* Make the wrapper the positioning context of its child contacts\\n\\t\\t * menu. */\\n position: relative;\\n display: inline;\\n vertical-align: top;\\n background-color: var(--color-background-dark);\\n border-radius: 50vh;\\n padding: 1px 7px 1px 1px;\\n /* Ensure that the avatar and the user name will be kept together. */\\n white-space: nowrap; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar {\\n height: 16px;\\n width: 16px;\\n vertical-align: middle;\\n padding: 1px;\\n margin-top: -3px;\\n margin-left: 0;\\n margin-right: 2px; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img {\\n vertical-align: top; }\\n #commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,\\n #commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong {\\n /* Ensure that the user name is shown in bold, as different browsers\\n\\t\\t\\t * use different font weights for strong elements. */\\n font-weight: bold; }\\n\\n#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,\\n#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser {\\n background-color: var(--color-primary);\\n color: var(--color-primary-text); }\\n\\n.atwho-view-ul * .avatar-name-wrapper {\\n white-space: nowrap; }\\n\\n#commentsTabView .comment .author,\\n#commentsTabView .comment .date {\\n opacity: .5; }\\n\\n#commentsTabView .comment .author {\\n max-width: 210px;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\\n#commentsTabView .comment .date {\\n margin-left: auto;\\n /** this is to fix the tooltip being too close due to the margin-top applied\\n\\t to bring the tooltip closer for the action icons **/\\n padding: 10px 0px; }\\n\\n#commentsTabView .comments > li:not(.newCommentRow) .message {\\n padding-left: 40px;\\n word-wrap: break-word;\\n overflow-wrap: break-word; }\\n\\n#commentsTabView .comment .action {\\n opacity: 0.3;\\n padding: 14px;\\n display: block; }\\n\\n#commentsTabView .comment .action:hover,\\n#commentsTabView .comment .action:focus {\\n opacity: 1; }\\n\\n#commentsTabView .newCommentRow .action-container {\\n margin-left: auto; }\\n\\n#commentsTabView .comment.disabled .message {\\n opacity: 0.3; }\\n\\n#commentsTabView .comment.disabled .action {\\n display: none; }\\n\\n#commentsTabView .message.error {\\n color: #e9322d;\\n border-color: #e9322d;\\n box-shadow: 0 0 6px #f8b9b7; }\\n\\n.app-files .action-comment {\\n padding: 16px 14px; }\\n\\n#commentsTabView .comment .message .contactsmenu-popover {\\n left: -6px;\\n top: 24px; }\\n\", \"\"]);\n"],"sourceRoot":""} \ No newline at end of file